You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForms中CheckBox数据绑定失效及正确配置方案

WinForms CheckBox数据绑定切换数据源失效问题解决

问题现象

在WinForms开发中,CheckBox的DataBindings存在更换新DataSource后失效的问题:
场景1:先为checkBox1添加数据绑定,再重新赋值settingsParser对象

checkBox1.DataBindings.Add(nameof(checkBox1.Checked), settingsParser, nameof(settingsParser.IsTestProperty), false, DataSourceUpdateMode.OnPropertyChanged);
settingsParser = settingsService.ReadFilfe2(pathFileCampaign);

结果:settingsParser.IsTestProperty属性无法随CheckBox状态更新。

场景2:先重新赋值settingsParser对象,再添加数据绑定

settingsParser = settingsService.ReadFilfe2(pathFileCampaign);
checkBox1.DataBindings.Add(nameof(checkBox1.Checked), settingsParser, nameof(settingsParser.IsTestProperty), false, DataSourceUpdateMode.OnPropertyChanged);

结果:settingsParser.IsTestProperty属性可正常更新。

疑问

是否可先创建SettingsParser对象、配置DataBindings,后续仅更新对象内容?还是每次更换SettingsParser都需重新配置绑定?

核心目标

实现MainForm中DataGrid选中条目后,加载对应JSON配置文件,并将配置内容显示在绑定控件中。

解决方案

通过BindingSource作为中间层实现动态数据源切换:

SettingsParser settingsParser = null;
BindingSource bs = null;
settingsParser = settingsService.ReadFilfe2(pathFileCampaign);
bs = new BindingSource(settingsParser, null);
checkBox1.DataBindings.Add(nameof(checkBox1.Checked), bs, nameof(settingsParser.IsTestProperty), false, DataSourceUpdateMode.OnPropertyChanged);

后续更换数据源时,只需更新bs.DataSource为新的SettingsParser对象即可。

内容的提问来源于stack exchange,提问作者eusataf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:33:23