更改一个组合框的值会导致另一个的值发生更改



我是两个组合框,其中填充了一个表的视图,如下面的

recieverComboBox.DataSource = myDataSet.Tables[0].DefaultView; 
recieverComboBox.DisplayMember = "UserPosition";
recieverComboBox.ValueMember = "ID";
recieverUnReadComboBox.DataSource = myDataSet.Tables[0].DefaultView;
recieverUnReadComboBox.DisplayMember = "UserPosition";
recieverUnReadComboBox.ValueMember = "usr_Id";

当我更改其中每个的值时,另一个的值会自动更改。为什么?

这里有两种方法可以避免这个问题。

解决方案A:

使用BindingSource作为组合框的DataSource。

recieverComboBox.DataSource = new BindingSource(myDataSet.Tables[0].DefaultView, null);
recieverComboBox.DisplayMember = "UserPosition";
recieverComboBox.ValueMember = "ID";
recieverUnReadComboBox.DataSource = new BindingSource(myDataSet.Tables[0].DefaultView, null);
recieverUnReadComboBox.DisplayMember = "UserPosition";
recieverUnReadComboBox.ValueMember = "usr_Id";

解决方案B:

调用方法DataTable.Copy

recieverComboBox.DataSource = myDataSet.Tables[0].Copy();
recieverComboBox.DisplayMember = "UserPosition";
recieverComboBox.ValueMember = "ID";
recieverUnReadComboBox.DataSource = myDataSet.Tables[0].Copy();
recieverUnReadComboBox.DisplayMember = "UserPosition";
recieverUnReadComboBox.ValueMember = "usr_Id";

相关内容

最新更新