我想将A连接BindingSource到类对象列表,然后将对象值连接到ComboBox。 有人可以建议如何做吗?
BindingSource
public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country() { Cities = new List<City>(); } }
是我的课程,我想将其name字段绑定到BindingSource,然后可以将其与ComboBox关联
name
当您指的是组合框时,我假设您不想使用2向数据绑定(如果是,请使用BindingList)
BindingList
public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string _name) { Cities = new List<City>(); Name = _name; } } List<Country> countries = new List<Country> { new Country("UK"), new Country("Australia"), new Country("France") }; var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries; comboBox1.DataSource = bindingSource1.DataSource; comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";
要查找在绑定组合框中选择的国家/地区,您可以执行以下操作:Country country = (Country)comboBox1.SelectedItem;。
Country country = (Country)comboBox1.SelectedItem;
如果要ComboBox动态更新,则需要确保已设置为DataSource实现的数据结构IBindingList;一种这样的结构是BindingList<T>。
DataSource
IBindingList
BindingList<T>
提示:请确保将绑定DisplayMember到类的Property而不是公共字段。如果您使用类public string Name { get; set; },它将起作用,但是如果使用public string Name;,它将无法访问该值,而是在组合框中显示每一行的对象类型。
DisplayMember
public string Name { get; set; }
public string Name;