当我在级别2的viewmodel中调用Close(this)时,我有一个崩溃的应用程序(意思是可以返回一页)。一个在第3级(意思是可以返回两页)回归正常。
我在主应用程序中调用它:
// Register the main view model
Mvx.RegisterSingleton<IMvxAppStart>(new MvxAppStart<StartScreenViewModel>());
在StartScreenViewModel中,我调用
this.ShowViewModel<AddNewViewModel>();
该viewmodel在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)
是什么导致这种情况?
答案 0 :(得分:2)
经过一番挖掘和对导航的疑惑后,我想通了。 我已经覆盖了
OnNavigateFrom(...)
在StartScreenViewModel中,但未调用
base.OnNavigateFrom(...)
在函数体中!添加现在调用允许导航正常工作。小白!
答案 1 :(得分:1)
我认为默认情况下,Windows应用商店应用会处理不在导航堆栈顶部的页面。您可以覆盖此行为。