Я просто добавил очень простой пример Войти проект SL4 в моем " лабораторный репозиторий "для Caliburn.Micro.
https://github.com/jenspettersson/Caliburn.Micro.Labs/tree/master/src/Login
Он использует шоу класс, Rob Eisenberg использует в своем примере «Game Library» для переключения между режимами просмотра.
В методе Login() он сообщает моей оболочке (вашей панели?), Чтобы показать мою модель LoginResultViewModel и задает сообщение о результате входа в систему.
yield return Show.Child<LoginResultViewModel>().In<IShell>().Configured(c => c.ResultMessage = "Successfully logged in!");
Проверьте код в моем реестре github.
Я не использовал Caliburn.Micro очень много в последнее время, поэтому я отнюдь не специалист, но этот способ работает для меня.
// J
Edit: Это отвечает, как перемещаться между представлениями, если вы хотите, чтобы показать «всплывающее окно» для отображения, если Войти был успешным, идти с другими Рекомендации.
Я еще не думал об этом, но теперь, когда вы упоминаете, что это делает панель инструментов, оболочка, вероятно, решит большинство проблем, которые у меня есть. –
Извините, но сейчас я заметил что-то не так. У меня нет простого метода Show на моем оконном менеджере. –
Обновлено. С Silverlight у вас есть ShowDialog, ShowNotification и ShowPopup. ShowDialog отображает модальное диалоговое окно для указанной модели представления, поэтому вам может потребоваться переключить логику и загрузите свой DashboardViewModel, а затем, если пользователь не будет аутентифицирован, отобразите LoginViewModel с помощью метода WindowManager.ShowDialog (чтобы он сидел на верхней части панели управления). Пользователь не сможет пройти этот модальный экран до тех пор, пока он не войдет в систему, где вы можете просто закрыть диалоговое окно. – devdigital