Wpf 从一个视图模型访问另一个视图模型

Wpf 从一个视图模型访问另一个视图模型,wpf,mvvm,Wpf,Mvvm,对于测试应用程序的各个部分,我有许多视图模型 一个视图模型用于名为MainSettingsViewModel的用户设置(默认目录、SQL Server、SQL数据库等)。它包含包含配置详细信息的MainSettings模型的实例 另一个视图模型包含可观察集合中的计算机列表(包含计算机名称、计算机数据库、计算机同步时间等信息) 还有一个包含网络设备的详细信息(名称、位置IP等) 现在,我需要使用来自这些不同视图模型的所有上述信息来执行任务。例如,我想pingNetworkDevices视图模型中的

对于测试应用程序的各个部分,我有许多视图模型

一个视图模型用于名为
MainSettingsViewModel
的用户设置(默认目录、SQL Server、SQL数据库等)。它包含包含配置详细信息的
MainSettings
模型的实例

另一个视图模型包含
可观察集合
中的计算机列表(包含
计算机名称
计算机数据库
、计算机同步时间等信息)

还有一个包含网络设备的详细信息(名称、位置IP等)

现在,我需要使用来自这些不同视图模型的所有上述信息来执行任务。例如,我想ping
NetworkDevices
视图模型中的每个网络设备,并将结果发送到
MainSettings
视图模型中的文件,然后通过每个计算机视图模型进行通信,并执行一些测试

我遇到的问题是,这些视图模型是在各自的视图中构建的,没有任何方法来相互交流信息


我的视图模型应该如何相互通信?

每个视图模型都需要引用它需要与之通信的任何其他视图模型


如果您有一个“主”视图模型,它可以根据需要实例化其他视图模型,并在构造函数中为它们传递对自身的引用。这些虚拟机可以将构造函数中的引用保存在私有字段中,并根据需要对其调用公共方法。

我建议您在启动项目之前阅读更多有关MVVM模式的内容。很明显,您将模式与一些对象或基类混淆了,没有“多个MVVM”,您可以使用ViewModel、Model(作为层或对象)和View。“模型”还包括您的业务逻辑,即服务和存储库,而不仅仅是描述您的数据结构的POCO类TANKS Will和Tseng,当您这样称呼它时,术语显然更有意义。我会努力学习更多。