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
:
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country(string name) { Name = name; Cities = new List<City>(); } }</code>
Buat Country
senarai objek:
<code class="language-csharp">List<Country> countries = new List<Country> { new Country("英国"), new Country("澳大利亚"), new Country("法国") };</code>
Inisialisasikan BindingSource
dan tetapkannya DataSource
kepada senarai negara:
<code class="language-csharp">var bindingSource1 = new BindingSource(); bindingSource1.DataSource = countries;</code>
Ikat ComboBox DataSource
kepada BindingSource
DataSource
:
<code class="language-csharp">comboBox1.DataSource = bindingSource1.DataSource;</code>
Tetapkan DisplayMember
dan ValueMember
ComboBox kepada atribut kelas Country
yang sepadan:
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name";</code>
ComboBox kini akan memaparkan nama setiap negara dalam senarai. Untuk mendapatkan semula negara yang dipilih, anda boleh menggunakan atribut SelectedItem
ComboBox:
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
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!