在VB.NET中将自定义对象绑定到复选框

在VB.NET中将自定义对象绑定到复选框,vb.net,winforms,data-binding,Vb.net,Winforms,Data Binding,我正在尝试将复选框绑定到自定义对象布尔属性,如下所示: chkTableIsReadonly.DataBindings.Add(New Binding("Checked", objectBindingSource, "ApplyforVisa", True, DataSourceUpdateMode.OnPropertyChanged, False)) 自定义类支持INotifyPropertyChanged接口 当我最初将复选框绑定到一个新对象时,一切都正常: objectBindingSo

我正在尝试将复选框绑定到自定义对象布尔属性,如下所示:

chkTableIsReadonly.DataBindings.Add(New Binding("Checked", objectBindingSource, "ApplyforVisa", True, DataSourceUpdateMode.OnPropertyChanged, False))
自定义类支持INotifyPropertyChanged接口

当我最初将复选框绑定到一个新对象时,一切都正常:

objectBindingSource.Datasource=新建objectToBindTo

以下是奇怪的部分:

如果我选中该框,将调用属性集,并调用INotifyPropertyChanged事件,所有人都很高兴。 如果取消选中同一复选框,则不会调用属性集,也不会调用INotifyPropertyChanged事件,更糟糕的是,我无法导航到其他记录。 我已尝试捕获CheckedChanged事件以手动设置object.ApplyForVisa属性,但未成功。调用属性集并调用INotifyPropertyChanged事件,但我仍然锁定在控件上,无法导航

我已尝试在CheckedChanged事件中调用bindingsource.endedit,但未成功

如果我不勾选这个框,这才重要。该复选框有两种状态-true或false

我所有的其他绑定都工作得很好——文本框、组合框、数据网格。只是不是复选框

我唯一的想法是,is看起来像是绑定源数据错误,但不会抛出任何错误。如果我为绑定源添加数据错误事件处理程序,它将永远不会被调用。

假设ApplyForVisa属性是布尔值,您只需将绑定的formattingEnabled参数设置为False即可解决此问题

chkTableIsReadonly.DataBindings.Add( _
    New Binding("Checked", objectBindingSource, "ApplyforVisa", _
                False, DataSourceUpdateMode.OnPropertyChanged, False))
假设ApplyForVisa属性是布尔值,您可以通过将绑定的formattingEnabled参数设置为False来解决此问题

chkTableIsReadonly.DataBindings.Add( _
    New Binding("Checked", objectBindingSource, "ApplyforVisa", _
                False, DataSourceUpdateMode.OnPropertyChanged, False))

是否可以包含objectToBindTo实现的代码(包括ApplyForVisa属性)以及实例的PropertyChanged的任何附加处理程序?是否可以包含objectToBindTo实现的代码(包括ApplyForVisa属性)以及实例的PropertyChanged的任何附加处理程序?