我有DataTable
这个结构如下:
ID | VALUE
----------------
1 | Item 1
2 | Item 2
3 | Item 3
我通过将每一行添加为项目,将DataTable
中的值显示为CheckedListBox
控件。
但我如何加入身份证? 是否有“DisplayMember”和“ValueMember”,如CheckedListBox控件的属性?
答案 0 :(得分:17)
是的,DisplayMember
上有ValueMember
和CheckedListBox
个属性,但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窗体组合框或列表框控件绑定到数据。
鉴于以上代码有效,可能是在讨论更高级的数据绑定,使用DataSource
?
答案 1 :(得分:8)
DataSource,DisplayMember和ValueMember属性可用于此控件,但它们不会显示在IntelliSense中:MSDN
你应该可以使用它们。
答案 2 :(得分:2)
是的,CheckedListBox中有'display member'和'value member'属性。
您可以像在组合框中一样设置属性:
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;
}
答案 3 :(得分:0)
The french documentation说:Cettepropriéténes'appliquepasàcetteclasse。 “此酒店不适用于此课程”。 在美国文档中看不到这一小段文字......