参考: 组合框上的 C# 数据绑定
我也有类似的情况。我有一个带有几个文本框、组合框、复选框的表单。最初,我使用捕获“更改”事件(如 text_changed、selected_index_changed 等)并将 UI 数据与支持对象同步。我了解了数据绑定并将所有 UI 元素绑定到我的支持对象。
问题: 根据我的 UI 状态,我启用和禁用使用支持对象保存到内容的“提交”按钮。但是现在,由于 DataBinding,支持对象的属性不会改变,除非绑定到该对象的控件正确失去焦点。
问题 是否有解决此问题的标准方法?还是我还需要捕捉“更改”事件并设置支持对象的值?
此外,为了使表单容错,我每 N 秒保存一次支持对象。但是使用 DataBinding(鉴于焦点上的控件仍未将其值设置为支持对象),我将保存错误的数据。
我试过 Evey N 秒调用 this.validate() -> 这不起作用,因为它实际上填充了焦点控件中的旧数据。
- - - 笔记 - - -
支持对象实现 INotifyPropertyChanged 接口。
这就是我绑定的方式(不是在设计器中),而是在代码中。
绑定 binding = new Binding("checked", solution, "InternalFlag"); checkBoxFlag.DataBindings.Add(绑定);