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中文网其他相关文章!