У меня есть список объектов дома. Эти наследуют ObservableCollections от лицПолучить холдинг ObservableCollection экземпляра NotifyCollectionChangedEventArgs или отправителя
public class House{
public ObservableCollection<Person> Residents = new ObservableCollection<Person>();
...
}
В любом классе я добавил жителей хендлера
List<House> Village = new List<House>();
foreach (House h in Village) {
h.Residents.CollectionChanged += OnResidents_Changed;
}
Handling:
private void OnResidents_Changed(object sender, NotifyCollectionChangedEventArgs e) {
if (e.NewItems!= null) {
foreach(Person p in e.NewItems){
//In which house did he go?
e.GetSourceCollection() //<- how to solve
}
}
}
Человек должен также может быть более чем в одном доме на в то же время. У меня нет возможности изменить атрибуты лиц.
Thx!
Я тоже думал об этом, но отправитель имеет тип 'Person'; а не типа 'ObservableCollection', не знаю почему !? Но это одно и то же поведение в каждом ObservableCollection. [см. Microsoft API] (https://msdn.microsoft.com/en-us/library/system.collections.specialized.notifycollectionchangedeventhandler (v = vs.110) .aspx) Но это не очень точно:/ –
Нет, отправитель является ObservableCollection. Если это не так, мы не будем говорить о коде в вашем вопросе. – Clemens
О, ты был прав! Извини, была моя ошибка. В моем случае я накладываю коллекцию на тип House, чтобы не набирать Person:/Спасибо за ваш ответ !! Не видел. Вопрос теперь кажется довольно тривиальным. –