我有一个带有许多组合框的窗体。他们都必须显示相同的项目,我希望能够从他们的值列表中删除项目。所以我决定尝试创建一个List变量,这样我就可以轻松地删除并插入值。所以我做的是
List<string> Ranks = new List<string>(new string[] { "values here" });
然后在我的Form1Designer.cs
中this.ComboBox_Rank_0.DataSource = Ranks;
我心中的ValueMember和DisplayMember是很好的东西,但到目前为止它没有它们。编译时,表单加载和组合框具有正确的值。
问题在于,当我在一个组合框中选择一个值时,其他组合也会选择相同的值。有什么想法吗?
答案 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 [] 语法