首頁 >後端開發 >C++ >如何將自訂物件清單綁定到組合框並檢索所選項目?

如何將自訂物件清單綁定到組合框並檢索所選項目?

Patricia Arquette
Patricia Arquette原創
2025-01-13 09:47:43934瀏覽

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

將物件清單綁定到組合框選項

您需要一種解決方案來將自訂物件清單綁定到組合框,並將其指定的屬性顯示為選項標籤。作為背景,請考慮以下類別:

<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>

逐步指南

要建立綁定,請依照下列步驟操作:

  1. 建立一個自訂物件(例如,Country)的 List

    <code class="language-c#"> List<Country> countries = new List<Country> { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
  2. 初始化一個 BindingSource 並將其 DataSource 賦值為 List

    <code class="language-c#"> var bindingSource1 = new BindingSource();
     bindingSource1.DataSource = countries;</code>
  3. 將組合框的 DataSource 設定為 BindingSource 的 DataSource:

    <code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
  4. 指定要在組合方塊中顯示的屬性為 DisplayMember:

    <code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
  5. 指定組合框傳回的值將使用的屬性為 ValueMember:

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

擷取所選項目

要從組合框中取得選定的 Country 對象,請將其選取的項目強制轉換為對應的類型:

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

動態更新

如果您需要組合框自動更新,請確保 DataSource 實作了 IBindingList 介面。 BindingList 是支援即時資料變更的一種實作。

顯示物件與屬性

請注意,DisplayMember 應引用類別中的屬性(例如,「Name」)。如果您使用欄位(例如,「Name;」),則該值將不可訪問,組合方塊將顯示物件類型而不是屬性值。

以上是如何將自訂物件清單綁定到組合框並檢索所選項目?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn