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

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

Patricia Arquette
發布: 2025-01-13 09:47:43
原創
887 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板