Есть ли "DisplayMember" и "ValueMember", как "Свойства для контроля CheckedListBox"? С# winforms
У меня есть DataTable
со следующей структурой:
ID | VALUE
----------------
1 | Item 1
2 | Item 2
3 | Item 3
И я отображаю значения из DataTable
в элемент управления CheckedListBox
, добавляя каждую строку в качестве элемента.
Но как включить идентификатор?
Есть ли "DisplayMember" и "ValueMember", как "Свойства для контроля CheckedListBox"?
Ответы
Ответ 1
Ну да, есть 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 Forms ComboBox или ListBox с данными.
Учитывая приведенный выше код, который, по-видимому, говорит о более сложной привязке данных, используя DataSource
?
Ответ 2
Свойства DataSource, DisplayMember и ValueMember доступны для этого элемента управления, но они не отображаются в IntelliSense: MSDN
Вы должны быть в состоянии использовать их, хотя.
Ответ 3
Да, в 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;
}
Ответ 4
Французская документация говорит: Cette propriété ne s'applique pas à cette classe.
Msgstr "Это свойство не относится к этому классу".
Эта небольшая строка текста не отображается в нашей документации...