C# BindingList<T>的使用
时间: 2024-11-15 14:28:48 浏览: 22
扩展BindingList<T>
3星 · 编辑精心推荐
`BindingList<T>` 是 .NET 中的一个动态数据集合,它通常用于 WinForms 或 WPF 的数据绑定场景中,比如 DataGrid 控件。它是 `List<T>` 的一种特殊形式,但提供了额外的功能:
1. 动态增删改查:当你向 BindingList 添加、删除或修改元素时,它会自动更新 UI 绑定,无需手动刷新视图。
2. 实现了 INotifyCollectionChanged 接口:这意味着当你对列表进行更改时,数据绑定能够感知到并实时更新显示状态。
3. 防止意外修改:由于它是只读的,除非明确地设置 `_isEditable = true`,否则默认不允许直接添加或删除元素。这样可以防止意外的数据丢失。
4. 优化性能:相比于简单的 List<T>,BindingList 内部做了优化,避免了不必要的序列化操作。
使用 `BindingList` 的步骤大致如下:
- 创建一个泛型类型的实例,如 `BindingList<Person>`
- 将 `BindingList` 和 UI 控件关联起来,通过 DataSource 属性
- 对 BindingList 进行增删改操作,UI 自动响应
```csharp
List<Person> myList = new BindingList<Person>();
dataGridView.DataSource = myList; // dataGridView 是 DataGrid 控件的实例
// 添加新的 item
myList.Add(new Person { Name = "John" });
// 删除 item
myList.Remove(myList.Find(x => x.Id == 1));
// 修改 item
Person updatedItem = myList.Find(x => x.Id == 1);
updatedItem.Name = "New John";
```
阅读全文