在 windows phone 8.1 上导航到另一个页面时我的应用程序关闭

My app close when navigate to another page on windows phone 8.1

我正在使用 MVVM Light Toolkit 在 windows phone 8.1 中构建应用程序,当我使用导航服务的 NavigateTo 方法时,我的应用程序关闭时没有抛出错误。这个问题似乎是随机的。

我使用的是典型的 MVVM 架构。我使用 ViewModelLocator,我在其中使用 unity 来注册我的所有依赖项。

尝试将 Dispatcher 与导航一起使用:

await Dispatcher.RunAsync( CoreDispatcherPriority.Normal, () => Frame.Navigate( typeof( SomePage ), "PageAgrs" ) );

这是 NavigateTo 方法实现的(简短)代码:

public virtual void NavigateTo(string pageKey, bool persist = true)
{
    if (!_pagesByKey.ContainsKey(pageKey))
        throw new ArgumentException(string.Format("No such page: {0}. Did you forget to call NavigationService.Configure?", pageKey), "pageKey");
    ((Frame)Window.Current.Content).Navigate(_pagesByKey[pageKey]);
}

因此,只有当您忘记配置要导航到的页面,或者 WP 框架的 Navigate 方法失败时,此方法才会崩溃。