Case
Скажем, у меня есть класс Person
, PersonViewModel
и PersonView
.
Обновление свойств от PersonView
до модели Person
достаточно просто. PersonViewModel
содержит объект Person
и имеет общедоступные свойства, с которыми связывается PersonView
, чтобы обновить модель Person.
Однако.
Представьте, что модель Person
может быть обновлена Service
. Теперь изменение свойства должно быть передано в PersonViewModel
, а затем в PersonView
.
Вот как я это исправит:
Для каждого свойства модели Person
я бы поднял событие PropertyChanged. PersonViewModel
подписывается на событие PropertyChanged Person
. PersonViewModel
затем поднимет еще одно свойство PropertyChanged, чтобы обновить PersonView
.
Это для меня кажется самым очевидным способом, но я как бы хочу бросить этот вопрос там в надежде, что кто-то покажет мне более хороший способ. Действительно ли это так просто или есть лучшие способы пометить модель как измененную и обновить соответствующие свойства в ViewModel?
Дополнения
PersonView
DataContext PersonViewModel
. Person
заселяется из JSON и обновляется многократно за время его существования.
Не стесняйтесь предлагать архитектурные изменения для моего конкретного случая.
Ответ
Я назвал aqwert ответом на мой вопрос, так как он предоставил мне альтернативу решению, которое я уже предложил.