我正在使用MVVMCross构建Windows 8.1移动应用程序,并且在浏览模型之间导航时发现了一些奇怪的行为。
我有2个像这样的View模型......
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的状态。
答案 0 :(得分:3)
您需要在页面构造函数中编写以下代码行。这样可以对访问过的页面进行缓存。
NavigationCacheMode = NavigationCacheMode.Required;