64 Stimmen

Bindung von Listbox an List<Object> in WinForms

Was ist der einfachste Weg, eine Listbox an eine Liste von Objekten in Windows Forms zu binden?

75voto

SLaks Punkte 832502

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() .

17voto

Ray Punkte 21047

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...)

17voto

surfmuggle Punkte 4838

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";

6voto

Justin Niessner Punkte 235353

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;

3voto

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

Bitte beachten Sie diese Artikel für detaillierte Beispiele.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X