猿问

List <T> vs BindingList <T>优点/缺点

有人可以描述我的项目两者之间的区别。

目前,我有一个List<MyClass>,并将BindingSource设置为,将DataGridView设置为BindingSource。

我已经实现了,IEditableObject所以在调用CancelEdit时,我将对象恢复为原来的状态Memberwise.Clone()

将我的列表更改为BindingList可以解决任何问题吗?使用BindingList有什么优点?


MMMHUHU
浏览 1215回答 3
3回答

明月笑刀无情

BindingList允许使用事件进行双向数据绑定,而List在其集合更改时不会触发事件。我认为这不会解决您的特定问题。

汪汪一只猫

例如,DataGrid需要知道何时将项目添加到列表中以添加新行。为此,它使用BindingList的ListChanged事件。如果将网格直接绑定到List <T>,则不会发生该事件,并且网格将无法得知更改列表的时间。您无需担心这种情况,因为BindingSource为您将List <T>包装在BindingList中。只要您使用BindingSource而不是列表本身,控件将保持同步。
随时随地看视频慕课网APP
我要回答