1

У меня есть ObservableCollection, который управляется несколькими классами. Я хочу узнать, какой класс уволил событие. Я уже посмотрел на объект отправителя и просмотрел свойства NotifyCollectionChangedEventArgs, но ничего не нашел. Я получаю только причину такого события, как: Сброс, добавление или удаление. Я ищу создателя.Какой класс выпустил событие CollectionChanged?

private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e){ 
    // if coming from one class do something 

    // else if coming from another class do something else 
} 

Целью этого является то, что мне нужна моя коллекция, чтобы вести себя по-разному в зависимости от класса, который изменил его.

+4

Вы не можете этого сделать. – SLaks

+1

* Почему вы хотите, чтобы он вел себя по-другому? Вероятно, есть лучший способ выполнить то, что вы хотите. –

+1

И ... [Это то, что мы называем проблемой XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) –

ответ

2

Это невозможно. Если вам действительно нужно это сделать, вы можете изменить тип объектов, которые вы поместили в коллекцию, чтобы добавить какое-то свойство «владелец», указав, кто их создал.

+0

Да, я уже подумал об этом, но я буду придется реорганизовать мой код совсем немного, это была большая надежда, что будет такой путь. С самого начала я был настроен скептически. –

Смежные вопросы