是否有“DisplayMember”和“ValueMember”,如CheckedListBox控件的属性? C#winforms

我有这个DataTable具有以下结构:

 ID | VALUE ---------------- 1 | Item 1 2 | Item 2 3 | Item 3 

我通过将每行添加为项目,将DataTable的值显示到CheckedListBox控件中。

但是如何包含ID? 是否有“DisplayMember”和“ValueMember”,如CheckedListBox控件的属性?

是的, CheckedListBox上有DisplayMemberValueMember属性,尽管ValueMember的文档声称它“与此类无关”。

这是一个显示DisplayMember工作的快速示例:

 using System; using System.Drawing; using System.Windows.Forms; class Test { static void Main() { CheckedListBox clb = new CheckedListBox { DisplayMember = "Foo", ValueMember = "Bar", Items = { new { Foo = "Hello", Bar = 10 }, new { Foo = "There", Bar = 20 } } }; Form f = new Form { Controls = { clb } }; Application.Run(f); } } 

另请注意,文档说明:

您无法将数据绑定到CheckedListBox。 请改用ComboBox或ListBox。 有关更多信息,请参见如何:将Windows窗体ComboBox或ListBox控件绑定到数据。

鉴于上面的代码是有效的,大概是在讨论更高级的数据绑定,使用DataSource

DataSource,DisplayMember和ValueMember属性可用于此控件,但它们不会显示在IntelliSense中: MSDN

你应该能够使用它们。

是的,CheckedListBox中有’display member’和’value member’属性。

您可以像在combobox中一样设置属性:

  public void PopulateListBox(System.Windows.Forms.CheckedListBox lb, string displayMember, string valueMember, DataTable data) { lb.DataSource = data; // where data is the datatable. datatable filled up with //data fetched from database. lb.ValueMember = valueMember; lb.DisplayMember = displayMember; } 

法国文件说:Cettepropriéténes’appliquepasàcetteclassese。 “此酒店不适用于此课程”。 在美国文档中看不到这一小段文字……