使用绑定列表操作ComboBox
本文介绍如何将自定义类对象的列表绑定到ComboBox控件。以下是解决方案:
首先,修改Country
类,添加一个构造函数初始化Name
和Cities
属性:
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }</code>
创建Country
对象列表:
<code class="language-csharp">List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };</code>
初始化BindingSource
并将其DataSource
设置为国家列表:
<code class="language-csharp">var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
将ComboBox的DataSource
绑定到BindingSource
的DataSource
:
<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>
设置ComboBox的DisplayMember
和ValueMember
为Country
类的相应属性:
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";</code>
现在,ComboBox将显示列表中各个国家的名称。要检索选定的国家,可以使用ComboBox的SelectedItem
属性:
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
注意,对于动态更新,您的数据结构应实现IBindingList
接口。建议使用BindingList<T>
。
请务必将DisplayMember
绑定到属性,而不是公共字段,以确保正确的显示和功能。
以上是如何在 C# 中将自定义类列表绑定到组合框?的详细内容。更多信息请关注PHP中文网其他相关文章!