|
MVVM: зависимые view, как реализовать?
|
|||
---|---|---|---|
#18+
Пример, идея такая: приложение типа визарда App MainWindow - содержит MainControllerView (UserControl) MainControllerView - содержит три кнопки back,next,cancel MainControllerModelView - создает три страницы и запихивает их в List,обрабатывает нажатие кнопок, каждое нажатие next делает content=list[i].page PageLicenseView - содержит checkBox <Agree> и показывает текст лицензии PageLicenseModelView PageProcessView - содержит progressBar PageProcessModelView - делает какую-то обработку и показывает прогресс PageFinishView - показывет текст с результатом PageFinishModelView - ничего не делает Все вроде ложится в концепцию, страницы независимы и ничего не знают друг о друге, контроллер ими управляет, показывая последовательно страницу за страницей. Вопросы: 1. на странице PageLicenseView юзер должен отметить чекбокс <Agree> и только после этого открывать кнопку <next>, но PageLicenseView ничего не знает про эту кнопку, ею управляет контроллер. Как сделать, чтобы кнопка управлялась? 2. если во время PageProcessModelView обнаружена ошибка контроллер должен показать страницу PageFinishView с результатом ошибки. Как передать текст ошибки от одной модели другой (через контроллер?) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2016, 11:57 |
|
MVVM: зависимые view, как реализовать?
|
|||
---|---|---|---|
#18+
имхо, но я бы делал это не так. каждая страница была бы шаблоном данных (DataTemplate) выбор шаболона основывался бы на типе модели которая передается в Content презентера. Сами модели должны находится в списке моделей, модели должны наследовать общий интерфейс, который будет реализовывать методы для проверки CanExecute кнопки. Следовательно, корневая модель будет проверять через интерфейс ошибки и возможность нажатия кнопок. UserControl'ы тут совсем лишние ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2016, 12:34 |
|
|
start [/forum/topic.php?fid=21&tid=1440746]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 250ms |
0 / 0 |