我想一个复选框绑定到自定义对象布尔属性如下:绑定自定义对象复选框在VB.NET
chkTableIsReadonly.DataBindings.Add(New Binding("Checked", objectBindingSource, "ApplyforVisa", True, DataSourceUpdateMode.OnPropertyChanged, False))
自定义类支持INotifyPropertyChanged接口。
一切工作发现,当我复选框最初绑定到一个新的对象:
objectBindingSource.Datasource = new objectToBindTo
这里是奇数部分:
- 如果我选中该复选框,设置属性被调用并且INotifyPropertyChanged事件被调用,每个人都很高兴。
- 如果我取消选中同一个框,Set属性不会被调用,INotifyPropertyChanged事件永远不会被调用,并且(更差的部分),我无法导航到另一条记录。
我已经尝试捕获CheckedChanged事件手动设置object.ApplyForVisa属性,但没有成功。属性Set被调用,INotifyPropertyChanged事件被调用,但我仍然被锁定在控件上,无法导航。
我曾尝试在CheckedChanged事件中调用bindingsource.endedit,但没有成功。
只有当我取消勾选框时才重要。该复选框为双态 - 真或假。
我所有的其他绑定工作得很好 - 文本框,组合框,数据网格。只是不复选框。
我唯一的想法是,似乎行为像一个绑定源数据错误,但没有错误引发。如果我为绑定源添加数据错误事件处理程序,它永远不会被调用。
您可以包含'objectToBindTo'实现的代码,包括'ApplyForVisa'属性以及任何附加的处理程序到'PropertyChanged'的实例吗? – 2012-07-26 15:30:31