2012-10-22 24 views
0

我試圖實施一個收藏類(來自ObservableCollectionBindingList),這將允許我取消添加任何新項目。可取消的收藏

現在我知道ObservableCollection不允許CollectionChanged事件是有原因的,在收集中的項目的編輯,但我從ObservableCollectionBindingList推導尋找一種方式來「旁路」這兩種。

任何示例將不勝感激。

回答

1

那麼,你需要一些BeforeCollectionChanged事件,通過EventArgsCancelled財產,你看看以確定是否添加它。

有點像這一點,我想:

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

CollectionChanged顯然爲時已晚,因爲屆時收集已經被改變。