绑定列表到几个组合框

时间:2016-04-02 23:00:48

标签: c# winforms combobox

我有一个带有许多组合框的窗体。他们都必须显示相同的项目,我希望能够从他们的值列表中删除项目。所以我决定尝试创建一个List变量,这样我就可以轻松地删除并插入值。所以我做的是

List<string> Ranks = new List<string>(new string[] { "values here" });

然后在我的Form1Designer.cs

this.ComboBox_Rank_0.DataSource = Ranks;

我心中的ValueMember和DisplayMember是很好的东西,但到目前为止它没有它们。编译时,表单加载和组合框具有正确的值。

问题在于,当我在一个组合框中选择一个值时,其他组合也会选择相同的值。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用BindingList<T>
此类允许您为每个组合分别处理与列表的交互

例如

List<string> names = new List<string>()
        {"Steve", "Mark", "Luke", "John", "Robert"};

BindingList<string> bl1 = new BindingList<string>(names);
ComboBox_Rank_0.DataSource = bl1;

BindingList<string> bl2 = new BindingList<string>(names);
ComboBox_Rank_1.DataSource = bl2;

BindingList<T>需要using System.ComponentModel;并注意您在列表的构造函数中不需要 new string [] 语法