アイテムが ObservableCollection に追加されたときにイベントを発生させる方法はありますが、アイテムが削除されたときではありませんか?
実際のイベントはないと思いますが、おそらく CollectionChanged イベントをフィルタリングする方法はありますか?
アイテムが ObservableCollection に追加されたときにイベントを発生させる方法はありますが、アイテムが削除されたときではありませんか?
実際のイベントはないと思いますが、おそらく CollectionChanged イベントをフィルタリングする方法はありますか?
CollectionChanged
イベントには、コレクションに対して実行されたアクション (追加や削除など) や影響を受けたアイテムなどの情報が含まれます。
ハンドラーにチェックを追加して、実行された場合にのみ目的のアクションAdd
を実行します。
ObservableCollection<T> myObservable = ...;
myObservable.CollectionChanged += (sender, e) =>
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
// do stuff
}
};
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);
}
}