Bir birleşik giriş kutusuna atıfta bulunduğunuz için, 2 yönlü veri bağlama kullanmak istemediğinizi varsayıyorum (öyleyse, a kullanmaya bakın 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";
Ciltli combobox'unda seçilen ülkeyi bulmak için, böyle bir şey yapsın: Country country = (Country)comboBox1.SelectedItem;.
ComboBox'ın dinamik olarak güncellenmesini istiyorsanız, DataSourceuygulama olarak ayarladığınız veri yapısının olduğundan emin olmanız gerekir IBindingList; böyle bir yapı BindingList<T>.
İpucu: DisplayMemberalanını herkese açık bir alana değil, sınıftaki bir Mülke bağladığınızdan emin olun . Sınıf kullanırsanız public string Name { get; set; }, işe yarayacaktır, ancak kullanırsa public string Name;değere erişemeyecek ve bunun yerine, açılan kutudaki her satır için nesne türünü görüntüleyecektir.