Я ничего не знаю о MVVM Toolkit, но простой способ сделать это состоял в том, чтобы делегат сделал это, что-то вроде: (упрощенный код)
private void OnStartup(object sender, StartupEventArgs e)
{
LoginViewModel loginVM = new LoginViewModel();
loginVM.ShowNextScreen += () => {
SomeOtherVM nextVM = new SomeOtherVM();
nextVM.ShowForm();
}
// ...
}
Итак, у вас есть виртуальная машина ShowNextScreen, которая вызывает этот код.
У меня есть небольшое приложение в Google Code , которое делает это (оно также касается только одной открытой формы, обработки ошибок и т. Д.). Обратите внимание, что в этом случае именно ViewModel отвечает за открытие представления.
Но это будет быстро усложняться, для любого разумного размера приложения вы хотели бы разделить эту функциональность на некий «контроллер приложений», который имел дело с открытием экранов, навигацией и т. Д.