Подтвердить что ты не робот

Список привязок к списку <объект>

Какой самый простой способ привязать Listbox к списку объектов?

4b9b3361

Ответ 1

Вы ищете DataSource property:

List<SomeType> someList = ...;
myListBox.DataSource = someList;

Вы также должны установить для свойства DisplayMember имя свойства в объекте, который должен отображаться в списке. Если вы этого не сделаете, он вызовет ToString().

Ответ 2

Притворившись, вы показываете список объектов клиента с свойствами customerName и customerId:

listBox.DataSource = customerListObject;
listBox.DataTextField = "customerName";
listBox.DataValueField = "customerId";
listBox.DataBind();

Изменить: я знаю, что это работает в asp.net - если вы делаете приложение winforms, оно должно быть очень похоже (я надеюсь...)

Ответ 3

Связывание System.Windows.Forms.Listbox Управление списком объектов (здесь типа dynamic)

List<dynamic> dynList = new List<dynamic>() { 
            new {Id = 1, Name = "Elevator", Company="Vertical Pop" },
            new {Id = 2, Name = "Stairs", Company="Fitness" }
};

listBox.DataSource = dynList; 
listBox.DisplayMember = "Name";
listBox.ValueMember = "Id";  

Ответ 4

Конечно, это не даст вам ничего действительно значимого, если объекты не будут должным образом переопределены ToString() (или вы действительно не работаете с общим списком объектов и можете привязываться к определенным полям):

List<object> objList = new List<object>();

// Fill the list

someListBox.DataSource = objList;

Ответ 5

Здесь есть два основных маршрута:

1: listBox1.DataSource = yourList;

Сделайте любые манипуляции (Добавить/Удалить) в свой список и перепривязать.
Установите DisplayMember и ValueMember для управления отображаемым.

2: listBox1.Items.AddRange(yourList.ToArray());

(или используйте цикл for, чтобы сделать Items.Add(...))

Вы можете управлять отображением, перегружая ToString() объектов списка или реализуя событие listBox1.Format.

Ответ 6

ListBox1.DataSource = CreateDataSource();
ListBox1.DataTextField = "FieldProperty";
ListBox1.DataValueField = "ValueProperty";

Ответ 7

Я не видел его здесь, поэтому я отправляю его, потому что для меня лучший способ в winforms:

    List<object> objList = new List<object>();

    listBox.DataSource = objList ;

    listBox.Refresh();
    listBox.Update();            

Ответ 8

Для приложения UWP:

XAML

<ListBox x:Name="List" DisplayMemberPath="Source" ItemsSource="{x:Bind Results}"/>

С#

public ObservableCollection<Type> Results