首頁 >後端開發 >C++ >為什麼將項目新增至清單後我的 WinForms DataGridView 不更新?

為什麼將項目新增至清單後我的 WinForms DataGridView 不更新?

Susan Sarandon
Susan Sarandon原創
2025-01-04 01:17:43363瀏覽

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

綁定BindingList;到WinForm 中的DataGridView

在這個WinForm 場景中,代表一個人的類別和一個List🎜>

在這個WinForm 場景中,代表一個人的類別和一個List 。使用的目的是將此清單綁定到 DataGridView。綁定最初成功,顯示與新增到清單中的項目相對應的兩行。但是,後續新增至清單中的內容不會自動反映在 DataGridView 中。

理解 Binding

問題的根源在於 List 沒有實作 IBindingList。因此,DataGridView 不知道對清單所做的任何變更。

解決方案:BindingList

要解決此問題,請考慮將DataGridView 綁定到BindingList
var list = new BindingList<Person>(persons);
myGrid.DataSource = list;

;反而。此類實作 IBindingList,允許 DataGridView 接收綁定清單中變更的通知。

BindingSource 實現更多控制

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;

更好地控制資料綁定時,請考慮使用BindingSource 作為BindingList 和BindingList 之間的中介。

透過採用此方法,您可以在資料來源和 DataGridView 之間保持一致且動態的綁定,確保即時反映底層資料的更新。

以上是為什麼將項目新增至清單後我的 WinForms DataGridView 不更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn