首頁 > 後端開發 > C++ > 如何動態更新綁定到清單的 WinForms DataGridView?

如何動態更新綁定到清單的 WinForms DataGridView?

Mary-Kate Olsen
發布: 2025-01-03 06:57:39
原創
455 人瀏覽過

How to Dynamically Update a WinForms DataGridView Bound to a List?

如何綁定清單到WinForms 中帶有資料更新的DataGridView

綁定清單 DataGridView 是一種以結構化表格形式顯示資料的有用技巧。但是,必須確保網格在底層資料變更時自動更新。

考慮以下場景:

class Person{
    public string Name {get; set;}
    public string Surname {get; set;}
}
登入後複製

您可能有 List 清單。您可以在其中添加一些項目:

List<Person> persons = new List<Person>();
persons.Add(new Person(){Name="Joe", Surname="Black"});
persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
登入後複製

最初,這些項目將顯示在 DataGridView 中。但是,如果您向人員清單新增項目,DataGridView 將不會顯示它們。

問題

問題在於List 沒有實作IBindingList,這表示DataGridView 不會收到有關變更的通知

解決方案

要解決此問題,請使用BindingList;而不是List。 BindingList實作 IBindingList,提供必要的事件通知。

var list = new BindingList<Person>(persons);
myGrid.DataSource = list;
登入後複製

使用 BindingSource 進行高級綁定

您可以使用 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;
登入後複製

透過遵循這些技術,您可以綁定列表到 WinForms 中的 DataGridView 並確保網格隨著資料的變化保持最新。

以上是如何動態更新綁定到清單的 WinForms DataGridView?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板