0

参考: 组合框上的 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(绑定);

4

1 回答 1

1

您需要更改绑定的属性,该属性描述何时将后端对象从失去焦点更新为值已更改

数据源更新模式

binding = new Binding("checked", solution, "InternalFlag", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
于 2011-10-11T18:03:16.513 回答