将对象列表绑定到组合框选项
您需要一种解决方案来将自定义对象列表绑定到组合框,并将其指定的属性显示为选项标签。作为背景,请考虑以下类:
<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中文网其他相关文章!