MVVM: привязка к модели при одновременной синхронизации модели с версией сервера
Я потратил довольно много времени, чтобы попытаться найти элегантное решение для следующей задачи. Мне не удалось найти решение, которое больше, чем взломать эту проблему.
У меня есть простая настройка View, ViewModel и Model. Я сделаю это очень просто ради объяснения.
TheModel
has a single property called Title
of type String.
The Model
is the DataContext for the View
.
The View
has a TextBlock
thats databound to Title
on the Model.
The ViewModel
has a method called Save()
that will save the Model
to a Server
The Server
can push changes made to the Model
Все идет нормально. Теперь нужно сделать две корректировки, чтобы синхронизировать модель сServer
, Тип сервера не важен. Просто знаю, что мне нужно позвонитьSave()
чтобы подтолкнуть модель кServer.
Adjustment 1:
TheModel.Title
property will need to call RaisePropertyChanged()
in order to translate changes made to the Model
by the Server
to the View
. This works nicely since the Model
is the DataContext for the View
Не так уж плохо.
Adjustment 2:
Next step is to callSave()
to save changes made from the View
to the Model
on the Server
. This is where I get stuck. I can handle the Model.PropertyChanged
event on the ViewModel
that calls Save() when the Model gets changed but this makes it echo changes made by the Server.
Я ищу элегантное и логичное решение и готов изменить свою архитектуру, если это имеет смысл.