我正在尝试将SubSonic 2.1生成的DAL对象绑定到WinForm(VB.NET VS2005)。为了解决缺少IPropertyNotifyChanged实现的问题,在我的绑定方法中,我在每个想要绑定的控件的controlname.DataBindings.Add()之前做一个controlname.DataBindings.Clear()。
文本框可以正常使用这样的代码(ioBLL是对我的BLL对象的引用,ioDAL是对其中的DAL属性的引用):
txtCountryName.DataBindings.Add(New Binding("Text", ioBLL.ioDAL, namespace.Country.Schema.Columns.GetColumn("CountryName").ToString, True, DataSourceUpdateMode.OnPropertyChanged))
但绑定到复选框时
chkObsolete.DataBindings.Add(New Binding("Checked", ioBLL.ioDAL, namespace.Country.Schema.Columns.GetColumn("Obsolete").ToString, True, DataSourceUpdateMode.OnPropertyChanged))
当底层属性值为True时,它永远不会在运行时被勾选。
任何想法为什么?
答案 0 :(得分:1)
ioBLL.ioDAL.Obsolete是否为布尔值?
我使用非常相似的代码没有问题。
也许唯一的区别是我使用了BindingSource。
IE我在表单上使用了一个bindingsource,并将它的DataSource设置为ioBLL。
我还有其他问题直接将控件绑定到我的实体,但我不记得你描述的问题是其中之一。