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, DataSource
uygulama olarak ayarladığınız veri yapısının olduğundan emin olmanız gerekir IBindingList
; böyle bir yapı BindingList<T>
.
İpucu: DisplayMember
alanı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.