Gunakan senarai yang mengikat untuk mengendalikan ComboBox
Artikel ini menerangkan cara untuk mengikat senarai objek kelas tersuai ke kawalan ComboBox. Inilah penyelesaiannya:
Pertama, ubah suai kelas Country
dan tambahkan pembina untuk memulakan sifat Name
dan Cities
:
public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }
Buat Country
senarai objek:
List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };
Inisialisasikan BindingSource
dan tetapkannya DataSource
kepada senarai negara:
var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;
Ikat ComboBox DataSource
kepada BindingSource
DataSource
:
comboBox1.DataSource = bindingSource1.DataSource;
Tetapkan DisplayMember
dan ValueMember
ComboBox kepada atribut kelas Country
yang sepadan:
comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";
ComboBox kini akan memaparkan nama setiap negara dalam senarai. Untuk mendapatkan semula negara yang dipilih, anda boleh menggunakan atribut SelectedItem
ComboBox:
Country selectedCountry = (Country)comboBox1.SelectedItem;
Perhatikan bahawa untuk kemas kini dinamik, struktur data anda harus melaksanakan antara muka IBindingList
. Adalah disyorkan untuk menggunakan BindingList<T>
.
Pastikan untuk mengikat DisplayMember
pada harta dan bukannya medan awam untuk memastikan paparan dan kefungsian yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Senarai Kelas Tersuai ke ComboBox dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!