C# 可撤销托收

C# 可撤销托收,c#,observablecollection,bindinglist,C#,Observablecollection,Bindinglist,我正在尝试实现一个集合类(派生自ObservableCollection或BindingList),它允许我在添加任何新项时取消添加 现在我知道,observedcollection在CollectionChanged事件期间不允许编辑集合中的项目是有原因的,但我正在寻找一种方法来“绕过”这一点,方法是从observedcollection或bindingslist派生 任何示例都将不胜感激。好吧,在CollectionChanged事件之前,您需要一些,传递带有Cancelled属性的Even

我正在尝试实现一个集合类(派生自
ObservableCollection
BindingList
),它允许我在添加任何新项时取消添加

现在我知道,
observedcollection
CollectionChanged
事件期间不允许编辑集合中的项目是有原因的,但我正在寻找一种方法来“绕过”这一点,方法是从
observedcollection
bindingslist
派生


任何示例都将不胜感激。

好吧,在CollectionChanged事件之前,您需要一些
,传递带有
Cancelled
属性的
EventArgs
,以确定是否添加它

我猜是这样的:

public override void Add(T item) {
  var e = new BeforeCollectionChangedEventArgs();
  RaiseBeforeCollectionChanged(e);
  if (!e.Canceled)
    base.Add(item);
}
CollectionChanged
显然为时已晚,因为此时集合已经更改