Скажем, у меня есть класс 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 как ответ на мой вопрос, так как он дал мне альтернативу решению, которое я уже предложил.