System.ComponentModel.BindingList:Add(object)vs. AddNew()

问题描述:

System.ComponentModel.BindingList方法Add(object)AddNew()之间有什么区别? MSDN文档这样说:System.ComponentModel.BindingList:Add(object)vs. AddNew()

  • Add:将对象添加到Collection<T>结束。

  • AddNew:将新项目添加到集合中。

好像这两种方法将项目添加到集合,但Add(object)做它在一杆,而AddNew()稍微复杂一些。我的测试Add(object)似乎正在工作,但我想知道我是否正在使用正确的方法。

那么这些方法有什么区别?

+4

AddNew添加一个'空'对象。只运行默认的构造函数。它引发AddingNew事件以允许其他类自定义对象初始化。请注意,EndNew必须在设置其属性后调用。目前尚不清楚哪一个对您而言“更好”。简单更好。 – 2012-04-17 19:59:38

+1

@HansPassant你是一个拯救生命的人!我正在经历奇怪的行为,因为我没有打电话给“.EndNew”,我很困惑。 '.AddNew'上的元数据应该提到这个要求! – 2012-05-19 09:06:26

AddNew()为您创建对象(这就是为什么它没有参数)。
它被设计为网格使用,它不知道如何创建一个新对象传递给Add()