Mengikat BindingList
Dalam senario WinForm ini, kelas yang mewakili seseorang dan Senarai
Memahami Pengikatan
Masalah timbul daripada fakta bahawa Senarai tidak melaksanakan IBindingList. Akibatnya, DataGridView tidak mengetahui sebarang perubahan yang dibuat pada senarai.
Penyelesaian: BindingList
Untuk menyelesaikan isu ini, pertimbangkan untuk mengikat DataGridView ke BindingList< ;T> sebaliknya. Kelas ini melaksanakan IBindingList, membenarkan DataGridView menerima pemberitahuan perubahan dalam senarai terikat.
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
BindingSource untuk Kawalan Lebih Banyak
Untuk kawalan yang lebih besar ke atas data mengikat, pertimbangkan untuk menggunakan BindingSource sebagai perantara antara BindingList
var list = new List<Person>() { new Person { Name = "Joe", }, new Person { Name = "Misha", }, }; var bindingList = new BindingList<Person>(list); var source = new BindingSource(bindingList, null); grid.DataSource = source;
Dengan menggunakan pendekatan ini, anda boleh mengekalkan pengikatan yang konsisten dan dinamik antara sumber data anda dan DataGridView, memastikan kemas kini kepada data asas ditunjukkan dalam masa nyata.
Atas ialah kandungan terperinci Mengapa WinForms DataGridView Saya Tidak Kemas Kini Selepas Menambah Item pada Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!