我有一个应用程序,当我在级别2的视图模型中调用Close(this)时会崩溃(这意味着可以返回一页)。第3级的一个(意思是可以返回两页)可以返回。
我在主应用程序中称之为:
// Register the main view model
Mvx.RegisterSingleton<IMvxAppStart>(new MvxAppStart<StartScreenViewModel>());
在StartScreenViewModel中,我称之为
this.ShowViewModel<AddNewViewModel>();
该视图模型在XAML中有一个ICommand绑定,该绑定调用一个函数,该函数调用:
this.Close(this);
当调用这个Close()时,我将进入UnhandledException处理程序。异常消息为:
The given key was not present in the dictionary.
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsPage.LoadStateBundle(NavigationEventArgs e)
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsPage.<>c__DisplayClass1.<OnNavigatedTo>b__0()
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsExtensionMethods.<>c__DisplayClass1.<OnViewCreate>b__0()
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsExtensionMethods.OnViewCreate(IMvxWindowsView storeView, Func`1 viewModelLoader)
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsExtensionMethods.OnViewCreate(IMvxWindowsView storeView, MvxViewModelRequest viewModelRequest, Func`1 bundleLoader)
at Cirrious.MvvmCross.WindowsCommon.Views.MvxWindowsPage.OnNavigatedTo(NavigationEventArgs e)
是什么原因造成的?
在对导航进行了更多的挖掘和思考之后,我终于明白了。我已经超越
OnNavigateFrom(...)
在StartScreenViewModel中,但尚未调用
base.OnNavigateFrom(...)
在函数体中!添加现在调用的可以使导航正常工作。新手
我认为默认情况下,Windows应用商店应用程序会处理不在导航堆栈顶部的页面。您可以覆盖此行为。