我将两个组合框数据绑定到同一个字符串列表中:
cbo1.DataSource = niches_list.LIST_niches;
cbo1.DisplayMember = "LIST_niches";
cbo2.DataSource = niches_list.LIST_niches;
cbo2.DisplayMember = "LIST_niches";
这一切都很好,但是当我更改cbo1的选定项目时,cbo2也会改变选择;反之亦然:如果我更改了所选的cbo2项,则所选的cbo1项将更改为相同的索引。为什么是这样?有修复吗?
答案 0 :(得分:2)
使用BindingSource保持两个组合框货币管理不同
BindingSource bs = new BindingSource();
bs.DataSource = niches_list.LIST_niches
cbo1.DisplayMember = "LIST_niches";
cbo1.DataSource = bs;
BindingSource bs2 = new BindingSource();
bs2.DataSource = niches_list.LIST_niches;
cbo2.DisplayMember = "LIST_niches";
cbo2.DataSource = bs2;
BindingSource
对象具有许多功能,如类文档的链接中所述。在您的情况下,重要的是currency management
意味着它代表其客户端(组合框)处理基础数据源上的当前位置。 BindingSource.Current属性在两个实例之间是不同的,这是保持两个组合框选定项目分开的关键。