C# 在mvvmCross中将当前viewmodel替换为另一个

C# 在mvvmCross中将当前viewmodel替换为另一个,c#,mvvmcross,C#,Mvvmcross,我是否可以使用mvvmCross轻松地用另一个视图模型替换当前视图模型 当我使用ShowViewModel时,当前视图保持在后退按钮堆栈上。结合 关闭(此)后,ShowViewModel似乎不起作用 启动另一个viewmodel是否容易,以便该视图中的“后退”按钮将使您转到上一个视图而不是当前视图?您通常可以通过在每个目标平台上编写自定义演示者来完成这类操作 这并不完美——因为平台并不都提供相同的功能——但你通常可以找到一种方法让你的应用程序做它想做的事情 例如: 在WindowsPhone中

我是否可以使用mvvmCross轻松地用另一个视图模型替换当前视图模型

当我使用ShowViewModel时,当前视图保持在后退按钮堆栈上。结合 关闭(此)后,ShowViewModel似乎不起作用


启动另一个viewmodel是否容易,以便该视图中的“后退”按钮将使您转到上一个视图而不是当前视图?

您通常可以通过在每个目标平台上编写自定义演示者来完成这类操作

这并不完美——因为平台并不都提供相同的功能——但你通常可以找到一种方法让你的应用程序做它想做的事情

例如:

  • 在WindowsPhone中,您可以更改演示者的
    Show
    方法,使其在调用
    导航之前调用
    RemoveBackEntry
  • 在iOS中,您可以更改演示者的
    显示
    ,使其能够操纵
    UINavigationController
    视图控制器
    数组(相当于)
  • 在安卓系统中,你通常需要使用一些技巧,比如使用
    NoHistory=true

有关自定义演示者(本质上是自定义导航服务)的更多信息,请参阅和上的链接,谢谢。我相信这是一个标准的任务,如果可能的话,在基础库中实现它是有意义的。