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