Heim >Backend-Entwicklung >C++ >Wie binde ich eine Liste benutzerdefinierter Objekte an eine ComboBox und rufe das ausgewählte Element ab?
Eine Liste von Objekten an eine Kombinationsfeldoption binden
Sie benötigen eine Lösung, um eine benutzerdefinierte Objektliste an eine Combobox zu binden und ihre angegebenen Eigenschaften als Optionsbezeichnungen anzuzeigen. Betrachten Sie als Hintergrund die folgenden Klassen:
<code class="language-c#">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country() { Cities = new List<City>(); } }</code>
Schritt-für-Schritt-Anleitung
Um eine Bindung zu erstellen, befolgen Sie diese Schritte:
Erstellen Sie eine Liste
<code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
Initialisieren Sie eine BindingSource und weisen Sie ihre DataSource der Liste zu
<code class="language-c#"> var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
Setzen Sie die DataSource des Kombinationsfelds auf die DataSource der BindingSource:
<code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
Geben Sie die im Kombinationsfeld anzuzeigende Eigenschaft als DisplayMember an:
<code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
Gibt an, dass der vom Kombinationsfeld zurückgegebene Wert die Eigenschaft als ValueMember verwendet:
<code class="language-c#"> comboBox1.ValueMember = "Name";</code>
Ausgewählte Artikel abrufen
Um das ausgewählte Country-Objekt aus einem Kombinationsfeld zu erhalten, wandeln Sie die ausgewählten Elemente in den entsprechenden Typ um:
<code class="language-c#">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Dynamische Updates
Wenn das Kombinationsfeld automatisch aktualisiert werden soll, stellen Sie sicher, dass die DataSource die IBindingList-Schnittstelle implementiert. BindingList
Objekte und Eigenschaften anzeigen
Beachten Sie, dass DisplayMember auf eine Eigenschaft in der Klasse verweisen sollte (z. B. „Name“). Wenn Sie ein Feld verwenden (z. B. „Name;“), ist der Wert nicht zugänglich und im Kombinationsfeld wird der Objekttyp anstelle des Eigenschaftswerts angezeigt.
Das obige ist der detaillierte Inhalt vonWie binde ich eine Liste benutzerdefinierter Objekte an eine ComboBox und rufe das ausgewählte Element ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!