Простой пример кода. Скажите, что Вы имеете Person
класс с 3 свойствами. FirstName
, LastName
и Age
. Скажите, что Вы хотите связать свое поле списка с набором Person
объекты. Вы хотите, чтобы дисплей показал имя, но значение, чтобы быть возрастом. Вот то, как Вы сделали бы это:
List<Person> people = new List<Person>();
people.Add(new Person { Age = 25, FirstName = "Alex", LastName = "Johnson" });
people.Add(new Person { Age = 23, FirstName = "Jack", LastName = "Jones" });
people.Add(new Person { Age = 35, FirstName = "Mike", LastName = "Williams" });
people.Add(new Person { Age = 25, FirstName = "Gill", LastName = "JAckson" });
this.listBox1.DataSource = people;
this.listBox1.DisplayMember = "FirstName";
this.listBox1.ValueMember = "Age";
прием эти DisplayMember
, и ValueMember
.
Вы можете связывать Таблицу данных непосредственно...
listbox.ValueMember = "your_id_field";
listbox.DisplayMember = "your_display_field";
listbox.DataSource = dataTable;
Позволяет предполагают, что Ваш тип данных называют MyDataType. Реализуйте ToString () на том типе данных для определения текста дисплея. например:
class MyDataType
{
public string ToString()
{
//return the text you want to display
}
}
Тогда можно взять список, состоящий из типа данных, и переполнить его в ListBox через AddRange () следующим образом:
ListBox l;
List<MyDataType> myItems = new List<MyDataType>(); // populate this however you like
l.AddRange(myItems.ToArray());
Сообщенный мне, если бы Вы нуждаетесь в большем количестве помощи - она помогла бы знать, какой тип данных Вы пытаетесь отобразить в поле списка.
Можно установить источник данных на любой источник данных, Вам нравится этот, реализует IList или IListSource.
необходимо будет также установить DisplayMember и свойства ValueMember к полям, с которыми Вы хотите отобразить и связать значения соответственно.
Используя парамать DataSource, используемую для всасывания мудрой производительности - на ComboBoxes, по крайней мере,
, я теперь в большой степени тренируюсь для переопределения ToString () на объекте и просто добавлении объектов с помощью Объектов. AddRange () метод, как другой комментатор выше описывает.
Для привязки со словарем, необходимо обернуть его в новый объект BindingSource.
MyListBox.DataSource = New BindingSource(Dict, Nothing)
MyListBox.DisplayMember = "Value"
MyListBox.ValueMember = "Key"