Heim >Backend-Entwicklung >C++ >Wie binde ich eine Liste von Klassenobjekten an eine ComboBox in C#?

Wie binde ich eine Liste von Klassenobjekten an eine ComboBox in C#?

DDD
DDDOriginal
2025-01-13 07:47:41123Durchsuche

How to Bind a List of Class Objects to a ComboBox in C#?

Binden Sie die Liste der Klassenobjekte an das ComboBox-Steuerelement

Wenn Sie eine Liste von Klassenobjekten haben und diese an ein ComboBox-Steuerelement binden möchten, führen Sie die folgenden Schritte aus:

1. Erstellen Sie Ihre Klasse

Angenommen, es gibt eine Klasse, die ein Land repräsentiert:

<code class="language-csharp">public class Country
{
    public string Name { get; set; }
    public IList<city> Cities { get; set; }

    public Country()
    {
        Cities = new List<city>();
    }
}</code>

2. BindingSource-Objekt erstellen

Erstellen Sie ein BindingSource-Objekt und legen Sie dessen DataSource-Eigenschaft auf Ihre Länderliste fest. Zum Beispiel:

<code class="language-csharp">var countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };

var bindingSource1 = new BindingSource();
bindingSource1.DataSource = countries;</code>

3. Legen Sie die Datenquelle der ComboBox fest

Setzen Sie die DataSource-Eigenschaft der ComboBox auf die DataSource-Eigenschaft des BindingSource-Objekts. Dadurch wird eine Verbindung zwischen der ComboBox und Ihrer Liste hergestellt.

<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>

4. Legen Sie die DisplayMember- und ValueMember-Eigenschaften fest

Geben Sie das Klassenattribut an, das in der ComboBox angezeigt werden soll, und das Attribut, das als ausgewählter Wert gespeichert werden soll. Verwenden Sie DisplayMember zum Festlegen von Anzeigeeigenschaften und ValueMember zum Festlegen von Werteigenschaften:

<code class="language-csharp">comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name";</code>

5. Holen Sie sich den ausgewählten Artikel

Um auf das ausgewählte Land zuzugreifen, wandeln Sie die SelectedItem-Eigenschaft der ComboBox in Ihren Klassentyp um:

<code class="language-csharp">Country country = (Country)comboBox1.SelectedItem;</code>

Tipps:

  • Stellen Sie sicher, dass die als DataSource verwendete Datenstruktur die IBindingList-Schnittstelle implementiert. BindingList ist eine solche Implementierung.
  • Binden Sie an Eigenschaften, nicht an Felder, um den korrekten Zugriff auf Werte sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie binde ich eine Liste von Klassenobjekten 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