MvvmCross 5.x 数据驱动或代码驱动导航



ViewModel 负责 UI 逻辑,包括导航。
所有示例都显示了在 Command 方法中作为用户操作(通常是按钮点击)的结果调用的Navigate方法。
Initialize方法是应该完成"繁重的工作",例如从数据库加载数据。
假设像电子邮件阅读器这样的应用程序。 "主"视图显示回收器列表,用户点击一个条目以查看详细信息。

问:
如果数据中的条件(例如,仅查找 0 或 1 行)指示应显示不同的屏幕(而不是与此 ViewModel 关联的列表),则 ViewModel如何导航到不同的 ViewModel?
我可以简单地从Initialize方法内部调用Navigate吗?
我是否应该在导航到"替代"屏幕之前Close当前的视图模型?
对后堆有什么顾虑吗?
本地数据可以通过Navigate传递到替代屏幕吗?

我已经在代码中看到过MvvmCross:ViewModel Navigation,但那是3.5年前,在5.x之前。

谢谢 马克

您有不同的方法来解决此问题,但首先我建议您查看新的导航。

  1. 获取数据,这些数据决定了在导航发生之前要导航到哪个 ViewModel。因此,您只需根据数据导航到正确的视图模型(更简单的方法)

  2. 正如您之前提到的(如果您之前无法获取数据Initialize),请获取数据,然后导航到所需的 ViewModel。关于关闭当前视图模型,您可以立即在之后执行此操作,也可以稍后在演示器中关闭它(当您关闭"替换"视图模型时,您也会关闭中间的视图模型)。这是通过使用演示提示来完成的,以便您可以(在平台演示器中)关闭相应的视图模型。

相关内容

  • 没有找到相关文章

最新更新