如何使用viewmodellocator在视图模型之间发送参数

Eug*_*ene 6 .net c# wpf mvvm viewmodellocator

我正在使用MVVMLight创建一个WPF应用程序.我使用ViewModelLocator来创建视图模型.我的问题是在它们之间传递参数.

例如,我们有一个情况:

我们有一个带有一些实体的网格,当其中一个被双击时,我需要创建一个包含该实体细节的新视图.如何将所选项ID发送到新View的ViewModel?

Rac*_*hel 3

通常,您会使用某种消息传递系统,例如 Prism 的EventAggregator或 MVVM Light 的Messenger

这两个系统都让我想起了寻呼系统:应用程序的任何部分都可以广播消息,并且应用程序的任何部分都可以订阅监听消息。

因此,您的 DoubleClick 命令将广播LoadItemMessage包含所选项目的a Id,并且负责显示该项目的任何内容都将订阅接收LoadItemMessages并在听到 a 时加载该项目LoadItemMessage

如果您有兴趣,我的博客上有一篇关于Viewmodels 与 MVVM 之间的通信的简短文章,它对事件系统进行了高级概述。