Мне нужно обработать событие PropertyChanged элемента в ObservableCollection внутри владельца ObservableCollection. Должен быть способ более элегантный, чем:
ObservableCollection(MyViewModel) myViewModels = new ObservableCollection<MyViewModel>();
LoadMyViewModels(myViewModels); // populates the collection
foreach (MyViewModel myViewModel in myViewModels)
{
myViewModel.PropertyChanged += PropertyChangedEventHandler(MyViewModelPropertyChanged);
}
Я хотел бы передать обработчик событий MyViewModelPropertyChanged в LoadMyViewModels, чтобы мне не приходилось дважды просматривать коллекцию (один раз при загрузке и один раз при назначении события).
MyViewModelPropertyChanged устанавливает свойства в содержащем представлении, которые отражаются в пользовательском интерфейсе (коллекция привязана к TreeView, и мне нужно включить / отключить поля в пользовательском интерфейсе, в зависимости от того, был ли выбран элемент).
Я просмотрел большинство, если не все процитированные сообщения, но я немного растерялся.
Приведенный выше код делает то, что мне нужно, но я знаю, что есть способ получше. Приведите соответствующую ссылку или образец кода.
Спасибо.