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:
public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }
Erstellen Sie eine Country
Liste von Objekten:
List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };
Initialisieren Sie BindingSource
und stellen Sie DataSource
auf eine Länderliste ein:
var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;
Binden Sie ComboBoxs DataSource
an BindingSource
s DataSource
:
comboBox1.DataSource = bindingSource1.DataSource;
Setzen Sie die ComboBoxen DisplayMember
und ValueMember
auf die entsprechenden Attribute der Country
-Klasse:
comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";
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:
Country selectedCountry = (Country)comboBox1.SelectedItem;
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!