2009-06-28 18 views
2

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

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

ответ

1

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

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

Да. Это то, что я закончил, так как я не получил ответа. +1 –

+0

Единственное отличие заключается в том, что в меню viewmodel есть команда сохранения, с которой я привязываюсь, так что если нет открытого файла с открытым файлом, то используется команда сохранения по умолчанию (которая ничего не делает.) Когда изменяется документ, я устанавливаю команду меню viewmodel к команде savable documents или по умолчанию. –