У меня есть последовательность входа в систему, работающая в приложении WPF на основе призмы, которое показывает экран входа в систему до отображения главного окна. в моем классе Bootstrapper метод InitializeShell выглядит следующим образом
protected override void InitializeShell()
{
var logon = new LogOnView();
bool? res = logon.ShowDialog();
if (!res ?? true)
{
Application.Current.Shutdown(1);
}
else
{
Application.Current.MainWindow.Show();
}
}
, и это работает, как ожидалось, и это нормально, если пользователь входит в систему, использует приложение и затем закрывает его.
Теперь я хочу позволить пользователю выйти из системы или прагматически заставить его выйти из системы.
Если я использую код, аналогичный приведенному выше, в MainWindowViewModel, чтобы попытаться убить MainWindow и показать LogOnView, который неработай.
Такое ощущение, что мне нужен какой-то диспетчер окон, чтобы показать и скрыть 2 экрана, которые инициализируются после того, как загрузчик сделал свое дело, или чтобы загрузчик ответил на событие из MainWindow или чего-то еще.
Каков наилучший способ достичь этого?