我正在尝试实现一个集合类(源自ObservableCollection
或BindingList
),这将允许我在发生时取消添加任何新项目。
现在我知道ObservableCollection
在CollectionChanged
事件期间不允许编辑集合中的项目有一个原因,但我正在寻找一种方法来“绕过”这一点,方法是从{派生{ {1}}或ObservableCollection
。
任何例子都将不胜感激。
答案 0 :(得分:1)
好吧,你需要一些BeforeCollectionChanged
事件,传递一个EventArgs
,其中包含Cancelled
属性,以确定是否添加它。
有点像这样,我想:
public override void Add(T item) {
var e = new BeforeCollectionChangedEventArgs();
RaiseBeforeCollectionChanged(e);
if (!e.Canceled)
base.Add(item);
}
CollectionChanged
显然已经太晚了,因为那时已经已经已经改变了