当您指的是组合框时,我假设您不想使用2向数据绑定(如果是,请使用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;
。
如果要ComboBox动态更新,则需要确保已设置为DataSource
实现的数据结构IBindingList
;一种这样的结构是BindingList<T>
。
提示:请确保将绑定DisplayMember
到类的Property而不是公共字段。如果您使用类public string Name { get; set; }
,它将起作用,但是如果使用public string Name;
,它将无法访问该值,而是在组合框中显示每一行的对象类型。