2009-06-16 69 views
1

我想绑定一个SubSonic 2.1生成的DAL对象到WinForm(VB.NET VS2005)。为了解决缺少IPropertyNotifyChanged实现的问题,在我的绑定方法中,为每个要绑定的控件添加controlname.DataBindings.Add()之前的控件name.DataBindings.Clear()。问题绑定WinForms复选框到亚音速DAL布尔

文本框做工精细用这样的代码(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时,它永远不会在运行时出现打勾。

任何想法为什么?

回答

1

ioBLL.ioDAL.Obsolete是一个布尔值吗?

我使用非常相似的代码没有问题。

也许唯一的区别是我使用BindingSource。

IE我在我的表单上使用了一个bindingsource,并将它的DataSource设置为ioBLL。

我有其他问题直接控制我的实体,但我不记得你描述为其中的一个问题。

+0

感谢您的意见。是的,这是一个布尔值。 由于我写这个,我想知道这是否是一个SubSonic的实例与VB.NET不如C#一样好,所以我咬紧牙关,用C#DAL创建了一个新的解决方案。这表现很好,所以我再次用VB.NET重新创建了DAL,并且它也工作正常!必须承担我的原始形式或BLL的错误... 对您使用BindingSource的评论感兴趣。你是否也在BLL中创建了所有属性并从DAL中填充它们,或者像我这样做并直接绑定到DAL属性? – kevinw 2009-06-22 09:33:33