我正在尝试实现一个集合类(从ObservableCollection
或派生BindingList
),它将允许我在添加任何新项目时取消它。
现在我知道ObservableCollection
不允许在CollectionChanged
活动期间编辑集合中的项目是有原因的,但我正在寻找一种方法来“绕过”这个,无论是从ObservableCollection
或派生BindingList
。
任何示例将不胜感激。
我正在尝试实现一个集合类(从ObservableCollection
或派生BindingList
),它将允许我在添加任何新项目时取消它。
现在我知道ObservableCollection
不允许在CollectionChanged
活动期间编辑集合中的项目是有原因的,但我正在寻找一种方法来“绕过”这个,无论是从ObservableCollection
或派生BindingList
。
任何示例将不胜感激。
好吧,您需要一些BeforeCollectionChanged
事件,传递一个EventArgs
带有Cancelled
您查看的属性以确定是否添加它的属性。
有点像这样,我猜:
public override void Add(T item) {
var e = new BeforeCollectionChangedEventArgs();
RaiseBeforeCollectionChanged(e);
if (!e.Canceled)
base.Add(item);
}
CollectionChanged
显然为时已晚,因为到那时集合已经更改。