将列表绑定到多个ComboBox

14 浏览
0 Comments

将列表绑定到多个ComboBox

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

List Ranks = new List(new string[] { "这里是值" });

然后在我的Form1Designer.cs中

this.ComboBox_Rank_0.DataSource = Ranks;

我知道ValueMember和DisplayMember是好东西,但目前没有使用它们也可以工作。编译后,窗体加载并且组合框具有正确的值。

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

0
0 Comments

问题:为什么使用new BindingList<string>(names)而不是new List<string>(names)?为什么不需要在构造函数中使用new string[]语法?

原因:

- BindingList<T>类可以单独处理每个组合框与列表的交互,而List<T>类不能。

- BindingList<T>类需要引用System.ComponentModel命名空间。

- 在BindingList<T>类的构造函数中不需要使用new string[]语法,而List<T>类需要。

解决方法:

- 使用BindingList<T>类来绑定列表到多个组合框。

- 引用System.ComponentModel命名空间。

- 在BindingList<T>类的构造函数中使用列表名作为参数,而不是new string[]语法。

关于new string[]语法和BindingList<T>类与List<T>类的区别,可以参考以下链接:

- Object and Collection Initializers

- stackoverflow.com/questions/2243950/…

0