由于您提到了下拉框,我假设您不想使用双向数据绑定(如果想使用,请考虑使用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;
}
}
Sorry, you have not provided any text to be translated into Chinese. Please provide the text you want to translate.
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
绑定到类上的属性而不是公共字段。如果您的类使用public string Name {get; set;}
,它将起作用,但如果它使用public string Name;
它将无法访问该值,并且将显示组合框中每行的对象类型。