C# ComboBox Data Binding: Memaparkan Senarai Objek
Panduan ini menunjukkan cara mengisi C# ComboBox dengan senarai objek, memaparkan sifat tertentu (cth., "Nama") setiap objek sebagai item dalam menu lungsur. Kami akan menggunakan BindingSource
untuk mengurus sambungan data.
Langkah 1: Menentukan Kelas dan Senarai Data
Mula-mula, buat kelas (cth., Country
) dengan sifat yang ingin anda wakili dalam ComboBox anda. Berikut ialah contoh dengan Name
sifat dan senarai City
objek:
<code class="language-csharp">public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } = new List<City>(); } public class City { public string Name { get; set; } }</code>
Sekarang, buat senarai Country
objek:
<code class="language-csharp">List<Country> countries = new List<Country>() { new Country { Name = "UK" }, new Country { Name = "Australia" }, new Country { Name = "France" } };</code>
Langkah 2: Menyediakan BindingSource
Buat objek BindingSource
dan tetapkan senarai countries
anda sebagai sumber datanya:
<code class="language-csharp">BindingSource bindingSource = new BindingSource(); bindingSource.DataSource = countries;</code>
Langkah 3: Menyambungkan BindingSource ke ComboBox
Pautkan BindingSource
ke ComboBox anda:
<code class="language-csharp">comboBox1.DataSource = bindingSource;</code>
Langkah 4: Mengkonfigurasi Paparan dan Ahli Nilai
Nyatakan sifat untuk dipaparkan dalam menu lungsur ComboBox (DisplayMember
) dan sifat untuk mendapatkan semula apabila item dipilih (ValueMember
):
<code class="language-csharp">comboBox1.DisplayMember = "Name"; comboBox1.ValueMember = "Name"; // Or another suitable property if needed</code>
Langkah 5: Mengakses Item Terpilih
Untuk mendapatkan objek Country
yang dipilih:
<code class="language-csharp">Country selectedCountry = (Country)comboBox1.SelectedItem;</code>
Mengendalikan Kemas Kini Dinamik (IBindingList)
Untuk kemas kini dinamik (menambah atau mengalih keluar item daripada senarai), pastikan sumber data anda melaksanakan antara muka IBindingList
. BindingList<T>
ialah pilihan yang baik:
<code class="language-csharp">BindingList<Country> countries = new BindingList<Country>() { /* ... your countries ... */ }; bindingSource.DataSource = countries;</code>
Pendekatan ini memastikan bahawa perubahan pada senarai countries
yang mendasari ditunjukkan secara automatik dalam ComboBox.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Senarai Objek ke ComboBox dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!