Heim >Backend-Entwicklung >C++ >Wie binde ich eine benutzerdefinierte Klassenliste an eine ComboBox in C#?

Wie binde ich eine benutzerdefinierte Klassenliste an eine ComboBox in C#?

DDD
DDDOriginal
2025-01-13 09:29:43609Durchsuche

How to Bind a Custom Class List to a 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 BindingSources 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn