MVVM как волшебник - PullRequest
       30

MVVM как волшебник

9 голосов
/ 18 июля 2010

Я сейчас создаю приложение на основе MVVM.В приложении также должен быть мастер в стиле MVVM.Волшебник - это не обычный волшебник, это особый вид волшебника.Моя цель состоит в том, чтобы реализовать мастер с

1.) Также имеет несколько ветвей.Мастер может направить вас в другом направлении.Так что волшебник не должен быть простым.

2.) Также могут иметь короткие пути.Вы можете пропустить некоторые страницы, где установлены значения по умолчанию.

3.) Также нормально - просто.

Обратите внимание, что некоторая информация на страницах wizrad доступна на лету.Это означает, что информация может передаваться между каждым шагом и обрабатываться.

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

Ответы [ 3 ]

9 голосов
/ 18 июля 2010

Вы читали эту хорошую статью в Code Project о Wizard в MVVM, написанную двумя гуру MVVM: http://www.codeproject.com/KB/WPF/InternationalizedWizard.aspx?display=Print

3 голосов
/ 23 июля 2010

Вы можете взглянуть на ViewModel пример приложения WPF Application Framework (WAF) . В нем показано, как реализовать мастер в формате MVVM.

2 голосов
/ 18 июля 2010

Если у вашего мастера есть одна виртуальная машина, которая хранит состояние / результаты каждого шага и находится за представлением, которое является пользовательским элементом управления ...

Вы можете иметь фрейм в представлении мастера, для которого требуется 2события в коде позади (это, очевидно, зависит от того, может ли ваша архитектура MVVM с этим справиться?).

Событие 1) Когда привязка вашего шага мастеров поднимает свой NotifyPropertyChanged: скажите вашему фрейму «Перейти» ксоответствующая страница (как описано в свойстве вашей виртуальной машины).

Событие 2) В событии «Navigated» для фреймов, чтобы вы могли указать контекст данных текущих страниц на вашей виртуальной машине.

Таким образом, модель представления мастера контролирует состояние мастера от начала до конца, а также может описывать шаги, которые можно легко добавить, отредактировать и т. Д.

Очевидно, что это может не подходить для всехМВВМ.

...