MVVM :Модифицированная модель, как правильно обновить ViewModel и View?

Case

Скажем, у меня есть класс Person, PersonViewModelи PersonView.

Обновление свойств модели PersonViewдо модели Personдостаточно просто. PersonViewModelсодержит объект Personи имеет общедоступные свойства, к которым привязывается PersonViewдля обновления модели Person.

Однако.

Представьте, что модель Personможет быть обновлена ​​с помощью Service. Теперь об изменении свойства необходимо сообщить PersonViewModel, а затем PersonView.

Вот как я это исправил.:

Для каждого свойства в модели Personя вызывал событие PropertyChanged. PersonViewModelподписывается на событие PropertyChanged Person. Затем PersonViewModelвызовет другой PropertyChanged, чтобы обновить PersonView.

Это кажется мне наиболее очевидным способом, но я как бы хочу задать этот вопрос в надежде, что кто-нибудь покажет мне более удобный способ. Это действительно так просто или есть лучшие способы пометить модель как измененную и обновить соответствующие свойства в ViewModel?

Дополнения

DataContext PersonViewимеет вид PersonViewModel. Personзаполняется из JSON и обновляется много раз за время своего существования.

Не стесняйтесь предлагать архитектурные изменения для моего конкретного случая.

Ответ

Я отметил aqwert как ответ на мой вопрос, так как он дал мне альтернативу решению, которое я уже предложил.

27
задан ndsc 29 April 2012 в 09:30
поделиться