Как я могу сделать между модулями / представлениями в MVVM? - PullRequest
1 голос
/ 22 апреля 2010

У меня есть приложение MVVM Silverlight 4, которое содержит список модулей (UserControl плюс некоторые метаданные) в ViewModel главного окна. Я отображаю UserControl модуля в ContentControl (Контент привязан к "CurrentModule.View").

Я хочу добавить в приложение немного попсов, объявляя переходы между представлениями. Я создал визуальные состояния для PreLoaded, Normal и Unloaded. Когда создается экземпляр UserControl, я устанавливаю его состояние в PreLoaded. Я прикрепил GoToStateAction к событию Loaded в UserControl, который устанавливает состояние «Нормальное», выполняя приятную анимацию, чтобы открыть представление. Это отлично работает.

Что мне нужно сделать сейчас, если анимировать это вне поля зрения, когда пользователь переключает модули. У меня есть другая GoToStateAction, присоединенная к событию «Unloaded» в UserControl, который устанавливает состояние «Unloaded». Я знаю, что текущая настройка не будет работать. ContentControl может показывать только один UserControl за раз - как только произойдет переключение, предыдущий модуль исчезнет. Я не могу точно сказать, работает ли анимация на виде, даже если она не видна или нет.

Как мне сделать то, что я здесь? Пожалуйста, имейте в виду, что Iam пытается сделать это в MVVM-дружественной манере, хотя я не против некоторого кода, когда он полностью сфокусирован на презентации.

Заранее спасибо! StackOverflow никогда не подводил меня!

Адам

1 Ответ

1 голос
/ 22 апреля 2010

Рассмотрите возможность использования TransitioningContentControl .
Это элемент управления Silverlight Toolkit, который после изменения содержимого имеет приятную анимацию перехода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...