gpt4 book ai didi

c# - 为什么按下后退按钮时 MvvmCross 创建一个新的 ViewModel

转载 作者:行者123 更新时间:2023-11-30 21:55:39 26 4
gpt4 key购买 nike

我正在使用 MVVMCross 构建一个 Windows 8.1 移动应用程序,我注意到在 View 模型之间导航时出现了一些奇怪的行为。

我有 2 个像这样的 Viewmodels...

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;

关于c# - 为什么按下后退按钮时 MvvmCross 创建一个新的 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com