首頁 > 後端開發 > C++ > 如何在 C# 中將物件清單綁定到組合框?

如何在 C# 中將物件清單綁定到組合框?

Linda Hamilton
發布: 2025-01-13 06:13:43
原創
412 人瀏覽過

How to Bind a List of Objects to a ComboBox in C#?

C# ComboBox 資料綁定:顯示物件清單

本指南示範如何使用物件清單填入 C# ComboBox,將每個物件的特定屬性(例如「名稱」)顯示為下拉式清單中的一項。我們將使用 BindingSource 來管理資料連線。

第 1 步:定義資料類別與清單

首先,使用您想要在 ComboBox 中表示的屬性來建立一個類別(例如 Country)。 這是一個帶有 Name 屬性和 City 物件清單的範例:

<code class="language-csharp">public class Country
{
    public string Name { get; set; }
    public IList<City> Cities { get; set; } = new List<City>();
}

public class City
{
    public string Name { get; set; }
}</code>
登入後複製

現在,建立 Country 物件的清單:

<code class="language-csharp">List<Country> countries = new List<Country>()
{
    new Country { Name = "UK" },
    new Country { Name = "Australia" },
    new Country { Name = "France" }
};</code>
登入後複製

第 2 步:設定 BindingSource

建立一個 BindingSource 物件並將您的 countries 清單指定為其資料來源:

<code class="language-csharp">BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = countries;</code>
登入後複製

第 3 步:將 BindingSource 連接到 ComboBox

BindingSource 連結到您的組合框:

<code class="language-csharp">comboBox1.DataSource = bindingSource;</code>
登入後複製

第 4 步:設定顯示成員與值成員

指定要在組合框下拉清單中顯示的屬性 (DisplayMember) 以及選擇項目時要檢索的屬性 (ValueMember):

<code class="language-csharp">comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Name"; // Or another suitable property if needed</code>
登入後複製

第 5 步:存取所選項目

要取得選取的Country物件:

<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
登入後複製

處理動態更新(IBindingList)

對於動態更新(從清單中新增或刪除項目),請確保您的資料來源實作 IBindingList 介面。 BindingList<T>是不錯的選擇:

<code class="language-csharp">BindingList<Country> countries = new BindingList<Country>() { /* ... your countries ... */ };
bindingSource.DataSource = countries;</code>
登入後複製

此方法可確保對基礎 countries 清單的變更自動反映在 ComboBox 中。

以上是如何在 C# 中將物件清單綁定到組合框?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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