Какой самый простой способ привязать Listbox к списку объектов?
Список привязок к списку <объект>
Ответ 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