Передача состояния приложения между моделями представления в приложении MVVM WPF

Мне нужно написать небольшое приложение для чтения файла конфигурации и создания с его помощью отчета. Я надеялся, наконец, использовать MVVM, но начать довольно сложно. О, я использую фреймворк Caliburn.Micro.

Итак, это то, что у меня есть, оболочка (основное представление, в котором размещены другие представления), имеющая ленту с 3 кнопками:

1) Открыть файл 2) Показать настройки 3) Показать результаты

И два других представления, SettingsView и ResultsView с кнопками для создания и удаления отчета.

Итак, я думаю, структура представления будет такой:

ShellView
   Ribbon
      OpenFileButton
      SettingsButton
      ResultsButton
   ContentControl (hosts SettingsView and ResultsView)

SettingsView
    CalculateResultsButton

ResultsView
    CancelResultsButton

Хитрость вот в чем:

1. "Show settings" button is disabled until a file is opened (via Open file). 
2. "Show results" button is disabled until a report is calculated (via a 
    method in SettingsViewModel).
3. If a report is calculated, the CalculateResultsButton is disabled and
   CancelResultsButton is enabled and vice versa.

Пожалуйста, посоветуйте, как мне этого добиться? Я понятия не имею, какой стратегии мне придерживаться. Мой мозг, не думающий о MVVM, говорит, что я должен создать переменную состояния, а затем каким-то образом связать эти кнопки с этой переменной, но я думаю, что это не сработает в мире MVVM, верно? Любой пример кода будет очень и очень оценен!

Большое спасибо!

6
задан user315648 4 April 2012 в 17:04
поделиться