繁体   English   中英

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

[英]Is there “DisplayMember” and “ValueMember” like Properties for CheckedListBox control? C# winforms

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

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

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

但是我如何包含身份证? 是否有“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'属性。

您可以像在组合框中一样设置属性:

   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àcetteclasse。 “此酒店不适用于此课程”。 在美国文档中看不到这一小段文字......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM