Rumah > pembangunan bahagian belakang > C++ > Mengapa WinForms DataGridView Saya Tidak Kemas Kini Selepas Menambah Item pada Senarai?

Mengapa WinForms DataGridView Saya Tidak Kemas Kini Selepas Menambah Item pada Senarai?

Susan Sarandon
Lepaskan: 2025-01-04 01:17:43
asal
297 orang telah melayarinya

Why Doesn't My WinForms DataGridView Update After Adding Items to a List?

Mengikat BindingList ke DataGridView dalam WinForm

Dalam senario WinForm ini, kelas yang mewakili seseorang dan Senarai digunakan, dengan niat untuk mengikat senarai ini kepada DataGridView. Pengikatan pada mulanya berjaya, memaparkan dua baris yang sepadan dengan item yang ditambahkan pada senarai. Walau bagaimanapun, penambahan seterusnya pada senarai tidak secara automatik ditunjukkan dalam DataGridView.

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;
Salin selepas log masuk

BindingSource untuk Kawalan Lebih Banyak

Untuk kawalan yang lebih besar ke atas data mengikat, pertimbangkan untuk menggunakan BindingSource sebagai perantara antara BindingList dan DataGridView.

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan