为什么MvvmCross创建一个新的ViewModel当后退按钮被按下
本文关键字:ViewModel 按钮 创建 MvvmCross 一个 为什么 | 更新日期: 2023-09-27 18:08:43
我正在用MVVMCross构建一个Windows 8.1移动应用程序,我注意到在视图模型之间导航时一些奇怪的行为。
我有2个视图模型像这样…
public class FirstViewModel : MvxViewModel
{
public override void Start()
{
base.Start();
}
public void Init()
{
//init code here
}
...
private void GoForward()
{
ShowViewModel<SecondViewModel>();
}
}
public class SecondViewModel : MvxViewModel
{
private void GoBack()
{
Close(this);
}
}
当我在SecondViewModel上调用Close(this)时,Mvvmcross再次在FirstViewModel上调用Start()和Init(),就像它被墓碑一样。
为什么会发生这种情况?即使我只离开FirstViewModel几秒钟,它似乎立即被埋葬了。我该如何阻止这种情况的发生?这很令人沮丧,因为我现在必须不断地维护FirstViewModel的状态
您需要在页面构造函数中编写以下代码行。这将启用访问页面的缓存。
NavigationCacheMode = NavigationCacheMode.Required;