Как перейти от одной ViewModel к другой в Caliburn.Micro? - PullRequest
1 голос
/ 28 февраля 2011

Я хочу перейти от экрана входа в систему к панели инструментов в моем приложении Silverlight OOB.

Я начал использовать Caliburn.Micro, но теперь у меня возникают сомнения, поскольку все, что я могу использовать, это Conductor,Или я что-то упустил?

Примечание : я изменил конструктор на Conductor, как первоначально предполагалось.Это то, что вы получаете за то, что не корректируете свои вопросы.

1 Ответ

3 голосов
/ 28 февраля 2011

Существует несколько способов отображения экрана входа в систему, вероятно, лучше всего запустить его со своего ShellViewModel.Таким образом, ваша ShellViewModel будет зависеть от вашей LoginViewModel, которую вы можете внедрить как абстракцию (ILoginViewModel), или лучше использовать вместо этого абстрактную фабрику и вставить ее в ваш ShellViewModel конструктор.

В любом случае, когда у вас есть экземпляр вашего LoginViewModel в ShellViewModel, вы можете отобразить его в виде модального диалогового окна (в этом случае используйте метод Caliburn.Micro WindowManager.ShowDialog - введите эту зависимостьв качестве IWindowManager абстракции), или отобразите представление входа в систему как часть основной области содержимого представлений оболочки; в этом случае ваш ShellViewModel будет проводником и активирует экземпляр вашего LoginViewModel с помощью ActivateItemметод.

После того, как вы получили входные данные от вашего LoginViewModel, либо в виде модального диалога, либо в виде кондуктивного просмотра, вы можете отобразить ваш DashboardViewModel в зависимости от ситуации, используя ShellViewModel в качестве проводника.

...