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
Freigeben: 2025-01-13 07:47:41
Original
116 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage