组合框中的数据绑定

时间:2011-10-11 17:48:07

标签: c# 2-way-object-databinding

参考: C# databinding on combobox

我有类似的情况。我有一个文本框,组合框,复选框的表单。最初我用来捕获“已更改”事件(例如,text_changed,selected_index_changed等)并将UI数据与支持对象同步。我了解了数据绑定,并将所有UI元素绑定到我的后备对象。

问题: 根据我的UI状态,我启用并禁用“提交”按钮,该按钮使用后备对象保存到内容。但是现在,由于DataBinding,后备对象的属性不会改变,除非绑定到的控件正确地失去焦点。

问题 有没有一种标准的方法可以解决这个问题?或者我是否仍然需要捕获“已更改”事件并设置支持对象的值?

另外,为了使表单容错,我每隔N秒使用一次保存后备对象。但是使用DataBinding(假设焦点上的控件仍未将其值设置为后备对象),我将保存错误的数据。

我尝试了什么 Evey N秒调用this.validate() - >这不起作用,因为它实际上填充焦点控件中的旧数据。

-----注意------

支持对象实现INotifyPropertyChanged接口。

这就是我绑定(不是在设计器中)而是在代码中的方式。

绑定绑定= new Binding(“checked”,solution,“InternalFlag”); checkBoxFlag.DataBindings.Add(结合);

1 个答案:

答案 0 :(得分:0)

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

Data Source Update Mode

binding = new Binding("checked", solution, "InternalFlag", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));