可取消的集合

时间:2012-10-22 06:04:34

标签: c# observablecollection bindinglist

我正在尝试实现一个集合类(源自ObservableCollectionBindingList),这将允许我在发生时取消添加任何新项目。

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

任何例子都将不胜感激。

1 个答案:

答案 0 :(得分:1)

好吧,你需要一些BeforeCollectionChanged事件,传递一个EventArgs,其中包含Cancelled属性,以确定是否添加它。

有点像这样,我想:

public override void Add(T item) {
  var e = new BeforeCollectionChangedEventArgs();
  RaiseBeforeCollectionChanged(e);
  if (!e.Canceled)
    base.Add(item);
}

CollectionChanged显然已经太晚了,因为那时已经已经已经改变了