如何使用 MVVlight 将数据从一个 Viewmodel 传递到另一个 Viewmodel

How to pass data from a Viewmodel to another Viewmodel using MVVlight

我目前正在开发一个 Xamarin.forms 项目,使用 .NET Standard 作为代码共享策略。此应用使用多个 pages/views。我尝试通过使用 MvvmLightLibsStd10 库来使用 MVVM 模式。我已经成功设置了 MVVM 结构 就像我之前的问题:

我遵循相同的代码结构。 每个视图(页面)都有自己的包含所有逻辑的 ViewModel。 在应用程序中,有一个页面包含带有 objects 的列表视图。 选择 object 时,需要将 object 传递到我的第二个页面视图模型,因为我需要在我的第二个 VM 中对这个 object 执行某些操作。我已经可以从列表视图的视图模型中的列表中获取 selectedObject view/page。我喜欢尽可能地尊重 MVVM 概念,所以我尽量避免代码隐藏在视图中。

当然,必须有一种方法可以使用 MVVM 构建多页面应用程序并在页面之间传递数据。但我真的不知道该怎么做。由于我是 Xamarin.forms.

中 MVVM 的新手用户

我喜欢保持带有后退按钮导航的 header。 提前致谢。

K。评论中的 Alan Bates 对使用面向消息的系统在不同页面之间传递数据有正确的想法。 MVVMLight 包含一个用于此目的的 IMessenger 接口,我建议在应该与 each-other.

分离的页面之间传递数据

在这种情况下,听起来您正在处理完全不同的 ViewModel,但是如果您发现您的 ViewModel 在逻辑上是耦合的(例如,将它们关联起来是有意义的),那么 ViewModel 可以包含对另一个 ViewModel 的引用,据我所知根本不会破坏 MVVM 模式。