將物件清單綁定到組合框選項
您需要一種解決方案來將自訂物件清單綁定到組合框,並將其指定的屬性顯示為選項標籤。作為背景,請考慮以下類別:
<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>
逐步指南
要建立綁定,請依照下列步驟操作:
建立一個自訂物件(例如,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>
初始化一個 BindingSource 並將其 DataSource 賦值為 List
<code class="language-c#"> var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
將組合框的 DataSource 設定為 BindingSource 的 DataSource:
<code class="language-c#"> comboBox1.DataSource = bindingSource1.DataSource;</code>
指定要在組合方塊中顯示的屬性為 DisplayMember:
<code class="language-c#"> comboBox1.DisplayMember = "Name";</code>
指定組合框傳回的值將使用的屬性為 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中文網其他相關文章!