2016-01-26 123 views
0

我有许多视图模型,用于测试应用程序的各个部分。从另一个视图访问一个视图模型

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

另一个视图模型包含ObservableCollection中的计算机列表(其中包含ComputerNameComputerDatabase,计算机同步时间等信息)。

另一个包含网络设备(名称,位置IP等)的详细信息。

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

我遇到的问题是这些视图模型是在各自的视图中构建的,并且没有任何方式可以相互交流他们的信息。

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

+0

我建议您在开始项目之前阅读更多MVVM模式。您显然将模式与某些对象或基类混淆,没有“多个MVVM”,您可能具有ViewModel,Model(作为图层或对象)和View。 “模型”还包括您的业务逻辑,即服务和存储库,而不仅仅是POCO类描述您的数据结构 – Tseng

+0

感谢Will和Tseng,当你这样说话时,术语显然更有意义。我会尽量多学习一些。 –

回答

0

每个视图模型将需要一个参考,它需要如果你拥有它可以实例其他视图模型,因为它需要他们一个“主”视图模型与

通信的任何其它视图模型,并通在构造函数中引用它的self。这些虚拟机可以将构造函数中的引用保存在专用字段中,并根据需要调用公共方法。

相关问题