0

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

现在我知道ObservableCollection不允许在CollectionChanged活动期间编辑集合中的项目是有原因的,但我正在寻找一种方法来“绕过”这个,无论是从ObservableCollection或派生BindingList

任何示例将不胜感激。

4

1 回答 1

1

好吧,您需要一些BeforeCollectionChanged事件,传递一个EventArgs带有Cancelled您查看的属性以确定是否添加它的属性。

有点像这样,我猜:

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

CollectionChanged显然为时已晚,因为到那时集合已经更改

于 2012-10-22T06:07:30.753 回答