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

yon*_*236 11 c# data-binding checkedlistbox winforms

我有DataTable以下结构:

ID | VALUE
----------------
1  | Item 1
2  | Item 2
3  | Item 3
Run Code Online (Sandbox Code Playgroud)

和我显示从该值DataTableCheckedListBox通过将每一行视为一个项目的控制.

但是我如何包含身份证?是否有"DisplayMember"和"ValueMember",如CheckedListBox控件的属性?

Jon*_*eet 17

是的,有DisplayMemberValueMember属性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);
    }
}
Run Code Online (Sandbox Code Playgroud)

另请注意,文档说明:

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

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

  • 出于某种原因,DisplayMember、DataSource、DrawMode 和 ItemHeight 是 CheckedListBox 的隐藏属性。您可以使用它们,但如果未显示隐藏项目(通常不会显示),Intellisense 和对象浏览器将不会显示它们。 (2认同)

Joh*_*ais 8

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

你应该可以使用它们.