Karena Anda mengacu pada kotak kombo, saya berasumsi Anda tidak ingin menggunakan penyatuan data 2 arah (jika demikian, lihat menggunakan a 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";
Untuk menemukan negara yang dipilih di combobox terikat, Anda akan melakukan sesuatu seperti: Country country = (Country)comboBox1.SelectedItem;.
Jika Anda ingin ComboBox diperbarui secara dinamis, Anda harus memastikan bahwa struktur data yang telah Anda tetapkan sebagai DataSourceimplement IBindingList; salah satu struktur seperti itu BindingList<T>.
Tip: pastikan Anda mengikat DisplayMemberke Properti di kelas dan bukan ke bidang publik. Jika Anda menggunakan kelas public string Name { get; set; }itu akan berhasil tetapi jika menggunakannya public string Name;tidak akan dapat mengakses nilai dan sebaliknya akan menampilkan tipe objek untuk setiap baris di kotak kombo.