Heim >Backend-Entwicklung >C++ >Wie binde ich eine benutzerdefinierte Klassenliste an eine ComboBox in C#?
Verwenden Sie die Bindungsliste, um ComboBox zu betreiben
In diesem Artikel wird beschrieben, wie eine Liste benutzerdefinierter Klassenobjekte an das ComboBox-Steuerelement gebunden wird. Hier ist die Lösung:
Ändern Sie zunächst die Klasse Country
und fügen Sie einen Konstruktor hinzu, um die Eigenschaften Name
und Cities
zu initialisieren:
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }</code>
Erstellen Sie eine Country
Liste von Objekten:
<code class="language-csharp">List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };</code>
Initialisieren Sie BindingSource
und stellen Sie DataSource
auf eine Länderliste ein:
<code class="language-csharp">var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
Binden Sie ComboBoxs DataSource
an BindingSource
s DataSource
:
<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>
Setzen Sie die ComboBoxen DisplayMember
und ValueMember
auf die entsprechenden Attribute der Country
-Klasse:
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";</code>
ComboBox zeigt nun die Namen jedes Landes in der Liste an. Um das ausgewählte Land abzurufen, können Sie das SelectedItem
-Attribut der ComboBox verwenden:
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Beachten Sie, dass Ihre Datenstruktur für dynamische Aktualisierungen die IBindingList
-Schnittstelle implementieren sollte. Es wird empfohlen, BindingList<T>
zu verwenden.
Stellen Sie sicher, dass Sie DisplayMember
an eine Eigenschaft und nicht an ein öffentliches Feld binden, um eine korrekte Anzeige und Funktionalität sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie binde ich eine benutzerdefinierte Klassenliste an eine ComboBox in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!