要添加但未删除的项目的ObservableCollection事件

时间:2013-02-24 19:31:21

标签: c# events observablecollection

当项目被添加到ObservableCollection时是否有办法触发事件,但是当一个项目被删除时,是否有办法触发事件?

我相信没有实际的事件,但也许是一种过滤CollectionChanged事件的方法?

2 个答案:

答案 0 :(得分:13)

CollectionChanged事件包括诸如对集合执行了哪些操作(例如,添加或删除)以及哪些项目受到影响等信息。

只需在处理程序中添加一个检查,以便仅在执行Add时执行所需的操作。

ObservableCollection<T> myObservable = ...;
myObservable.CollectionChanged += (sender, e) =>
{
    if (e.Action == NotifyCollectionChangedAction.Add)
    {
        // do stuff
    }
};

答案 1 :(得分:1)

对ObservableCollection类进行子类化并创建自己的ItemAdded事件应该是我认为的。

public class MyObservableCollection<T> : ObservableCollection<T>
{
    public event EventHandler<NotifyCollectionChangedEventArgs> ItemAdded;

    public MyObservableCollection()
    {
        CollectionChanged += MyObservableCollection_CollectionChanged;
    }

    void MyObservableCollection_CollectionChanged(object sender,            NotifyCollectionChangedEventArgs e)
    {
        if (e.Action == NotifyCollectionChangedAction.Add)
            ItemAdded(sender, e);
    }
}