MVVM Design для многодокументного приложения? - PullRequest
2 голосов
/ 29 июня 2009

У меня есть приложение, которое имеет интерфейс, аналогичный интерфейсу Visual Studio, в котором есть список документов, которые можно открывать, редактировать и сохранять. Каждый документ может быть разных типов и иметь разные редакторы.

У меня также есть общий Save MenuItem. То, что я хочу сделать, это иметь команду Сохранить только сохранить активный документ. Существует ли стандартный шаблон, использующий MVVM для подключения виртуальной машины документов к Save MenuItem?

1 Ответ

1 голос
/ 29 июня 2009

Я не знаю о стандартном способе, но я бы попробовал что-то вроде следующего:

  1. Создайте интерфейс с заглушкой для команды SaveDocument.
  2. Пусть ваш документ ViewModel реализует этот интерфейс.
  3. У вашего основного приложения, имеющего список текущих документов, есть свойство, которое возвращает документ модели представления, на котором в данный момент находится пользователь. Назовите это CurrentDocument ради аргументации. Позвольте WPF привязке данных установить это, когда они переключаются с документа на документ.
  4. Пусть ваша команда сохранения использует свойство CurrentDocument для получения документа. проверьте, что это не нуль и реализует соответствующий интерфейс. Если все проверки пройдены, вызовите команду SaveDocument для документа ViewModel.
...