MvvvmCross:在我的视图模型上调用Close会导致商店应用程序崩溃



我有一个应用程序,当我在级别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应用商店应用程序会处理不在导航堆栈顶部的页面。您可以覆盖此行为。

相关内容

  • 没有找到相关文章

最新更新