2009-12-31 82 views
1

我试图做一些事情,我认为并不复杂,但仍 - 直前进的办法似乎没有工作...组合框手工绑定

我创建了一个用户控制其绑定到数据表,然后我创建了新的绑定和绑定另一个目的是相同的组合(的SelectedValue更精确的)以下面的方式:

this.cboValue.DataSource = dt; 
this.cboValue.ValueMember = "ID"; 
this.cboValue.DisplayMember = "Text"; 
valueBinding = new Binding("SelectedValue", value, "Value", false, DataSourceUpdateMode.OnPropertyChanged); 
this.cboValue.DataBindings.Add(valueBinding); 
valueBinding.BindingComplete += new BindingCompleteEventHandler(valueBinding_BindingComplete); 

即正在完全正常需要时更新对象。 然后我需要使用不同的方法进行绑定,因为需要手动填充某些控件,所以我创建了一个新的业务对象,并尝试将该对象的列表/数组绑定到控件。

问题是,设置ValueMember时,我得到的是DBNull.Value,而不是我在设置绑定时瞄准的值。

我确实设法创建了一个解决方法 - 为该列表/业务对象数组创建一个新的数据表,但仍然看起来像一个麻烦。

任何人曾经尝试过类似的东西?

回答

2

我认为你的主要问题是数据表实现一些标准数组/列表没有的接口。

尝试使用BindingList <>。 ,并让你的类实现INotifyPropertyChanged接口。

我希望它能解决您的所有问题