C# 组合框手动装订

C# 组合框手动装订,c#,.net,winforms,C#,.net,Winforms,我正在尝试做一些我认为并不复杂但仍然简单的事情——直截了当的方法似乎不起作用 我创建了一个用户控件并将其绑定到一个datatable,然后创建了一个新绑定,并以以下方式将另一个对象绑定到同一个组合(更确切地说是SelectedValue): this.cboValue.DataSource = dt; this.cboValue.ValueMember = "ID"; this.cboValue.DisplayMember = "Text"; valueBinding = new Binding

我正在尝试做一些我认为并不复杂但仍然简单的事情——直截了当的方法似乎不起作用

我创建了一个用户控件并将其绑定到一个datatable,然后创建了一个新绑定,并以以下方式将另一个对象绑定到同一个组合(更确切地说是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,而不是设置绑定时的目标值

我确实设法创建了一个变通方法——为业务对象的列表/数组创建一个新的datatable,并保持与该表的绑定,但这看起来仍然很麻烦


有人尝试过类似的方法吗?

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

尝试使用BindingList。 并使您的类实现INotifyPropertyChanged接口

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