Какой класс запустил событие CollectionChanged?

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

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

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

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


person Venelin K    schedule 17.04.2015    source источник
comment
Почему вы хотите, чтобы он вел себя по-другому? Вероятно, есть лучший способ добиться того, чего вы хотите.   -  person Joe White    schedule 17.04.2015
comment
И... это то, что мы называем проблемой XY   -  person Sriram Sakthivel    schedule 17.04.2015


Ответы (1)


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

person Solal Pirelli    schedule 17.04.2015
comment
Да, я уже думал об этом, но мне придется немного реорганизовать свой код, это была скорее надежда, что способ будет. Я был настроен скептически с самого начала. - person Venelin K; 17.04.2015