MVVM :Привязка к модели при сохранении синхронизации модели с версией сервера

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

У меня есть простая установка View, ViewModel и Model. Я буду держать это очень простым ради объяснения.

  • Modelимеет единственное свойство с именем Titleтипа String.
  • Modelявляется DataContext для View.
  • Viewимеет TextBlock, данные которого привязаны к Titleв модели.
  • В ViewModelесть метод Save(), который сохраняет Modelв Server
  • . Serverможет передавать изменения, сделанные вModel

Пока все хорошо. Теперь мне нужно сделать две корректировки, чтобы синхронизировать модель с Server. Тип сервера не важен.Просто знайте, что мне нужно вызвать Save(), чтобы подтолкнуть модель кServer.

Adjustment 1:

  • Свойству Model.Titleнужно будет вызвать RaisePropertyChanged(), чтобы перевести изменения, внесенные в Modelот Serverдо View. Это прекрасно работает, так как Modelявляется DataContext для View

. Не так уж и плохо.

Регулировка 2:

  • Следующим шагом является вызов Save()для сохранения изменений, сделанных с Viewна Modelна Server. Здесь я застреваю. Я могу обработать событие Model.PropertyChangedв ViewModel, которое вызывает Сохранить ()при изменении модели, но это заставляет его повторять изменения, сделанные сервером.

Я ищу элегантное и логичное решение и готов изменить свою архитектуру, если это имеет смысл.

28
задан ndsc 3 May 2012 в 18:24
поделиться