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