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
Patricia ArquetteOriginal
2025-01-13 09:47:43889Durchsuche

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>

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>
  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>
  3. Setzen Sie die DataSource des Kombinationsfelds auf die DataSource der BindingSource:

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

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

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

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>

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!

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