MVVM 轻型页面导航在 ViewModel 外部

MVVM light Page Navigation Outside ViewModel

我正在尝试在 wiew 模型之外的 Windows 8.1 通用应用程序中调用 NavigateTo。我已经试过了:

var dispatcher = Window.Current.Dispatcher;

await dispatcher.RunAsync(
    CoreDispatcherPriority.Normal, 
    async () => await NavigateToRegistrationPage()
);

结果抛出异常

Object reference not set to instance of object.

我还尝试使用 Messenger 通过 Messenger 消息调用导航表单 ViewModel:

Messenger.Default.Send<MessengerEvents.NavigateToRegistrationPage>(
    new MessengerEvents.NavigateToRegistrationPage()
);

Public LoginViewModel //...

MessengerInstance.Register<MessengerEvents.NavigateToRegistrationPage>(
    this,
    (message) => GoToRegistrationPage()
); 

也不行。

Error has been thrown by the target of invocation

我无法在视图模型中直接调用导航(在没有直接从视图模型调用 Messenger 的情况下进行检查工作完美) 因为导航是响应服务器消息而执行的。

private void GoToRegistrationPage() 
{
    NavigationService.NavigateTo(ResourceService.CHOOSE_REGISTRATION_PAGE); 
}

问题已解决,我尝试从 MVVM Locator 中获取调度程序,将调度程序移至 app.xaml.cs 并完美运行