Was ist der einfachste Weg, eine Listbox an eine Liste von Objekten in Windows Forms zu binden?
Antworten
Zu viele Anzeigen?Sie suchen nach dem DataSource property
:
List<SomeType> someList = ...;
myListBox.DataSource = someList;
Sie sollten auch die Option DisplayMember
auf den Namen einer Eigenschaft des Objekts, die in der Listbox angezeigt werden soll. Wenn Sie das nicht tun, wird der Aufruf ToString()
.
Angenommen, Sie zeigen eine Liste von Kundenobjekten mit den Eigenschaften "customerName" und "customerId" an:
listBox.DataSource = customerListObject;
listBox.DataTextField = "customerName";
listBox.DataValueField = "customerId";
listBox.DataBind();
Bearbeiten: Ich weiß, dies funktioniert in asp.net - wenn Sie eine Winforms-Anwendung tun, sollte es ziemlich ähnlich sein (ich hoffe...)
Binden einer System.Windows.Forms.Listbox Kontrolle über eine Liste von Objekten (hier vom Typ dynamisch)
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";
Zugegeben, dies wird Ihnen nichts wirklich Sinnvolles liefern, es sei denn, die Objekte haben richtig überschrieben ToString()
(oder Sie arbeiten nicht wirklich mit einer generischen Liste von Objekten und können an bestimmte Felder binden):
List<object> objList = new List<object>();
// Fill the list
someListBox.DataSource = objList;
- See previous answers
- Weitere Antworten anzeigen