Heim > Backend-Entwicklung > C++ > Wie binde ich eine Liste benutzerdefinierter Objekte an eine ComboBox und rufe das ausgewählte Element ab?

Wie binde ich eine Liste benutzerdefinierter Objekte an eine ComboBox und rufe das ausgewählte Element ab?

Patricia Arquette
Freigeben: 2025-01-13 09:47:43
Original
934 Leute haben es durchsucht

How to Bind a List of Custom Objects to a ComboBox and Retrieve the Selected Item?

Eine Liste von Objekten an eine Kombinationsfeldoption binden

Sie benötigen eine Lösung, um eine benutzerdefinierte Objektliste an eine Combobox zu binden und ihre angegebenen Eigenschaften als Optionsbezeichnungen anzuzeigen. Betrachten Sie als Hintergrund die folgenden Klassen:

<code class="language-c#">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

Schritt-für-Schritt-Anleitung

Um eine Bindung zu erstellen, befolgen Sie diese Schritte:

  1. Erstellen Sie eine Liste mit benutzerdefinierten Objekten (z. B. Land):

    <code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
    Nach dem Login kopieren
  2. Initialisieren Sie eine BindingSource und weisen Sie ihre DataSource der Liste zu:

    <code class="language-c#"> var bindingSource1 = new BindingSource();
     bindingSource1.DataSource = countries;</code>
    Nach dem Login kopieren
  3. Setzen Sie die DataSource des Kombinationsfelds auf die DataSource der BindingSource:

    <code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
    Nach dem Login kopieren
  4. Geben Sie die im Kombinationsfeld anzuzeigende Eigenschaft als DisplayMember an:

    <code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
    Nach dem Login kopieren
  5. Gibt an, dass der vom Kombinationsfeld zurückgegebene Wert die Eigenschaft als ValueMember verwendet:

    <code class="language-c#"> comboBox1.ValueMember = "Name";</code>
    Nach dem Login kopieren

Ausgewählte Artikel abrufen

Um das ausgewählte Country-Objekt aus einem Kombinationsfeld zu erhalten, wandeln Sie die ausgewählten Elemente in den entsprechenden Typ um:

<code class="language-c#">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Nach dem Login kopieren

Dynamische Updates

Wenn das Kombinationsfeld automatisch aktualisiert werden soll, stellen Sie sicher, dass die DataSource die IBindingList-Schnittstelle implementiert. BindingList ist eine Implementierung, die Datenänderungen in Echtzeit unterstützt.

Objekte und Eigenschaften anzeigen

Beachten Sie, dass DisplayMember auf eine Eigenschaft in der Klasse verweisen sollte (z. B. „Name“). Wenn Sie ein Feld verwenden (z. B. „Name;“), ist der Wert nicht zugänglich und im Kombinationsfeld wird der Objekttyp anstelle des Eigenschaftswerts angezeigt.

Das obige ist der detaillierte Inhalt vonWie binde ich eine Liste benutzerdefinierter Objekte an eine ComboBox und rufe das ausgewählte Element ab?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage