嗨,我想通过在USERCORTOL中拥有离散功能单位来增长应用程序,然后将其中的几个放在我的主页上。我将需要能够在网格中的控件之间进行通信。

我想知道,他们交换数据的最佳方法是什么。该应用程序是MVVM设计,每个UserControl都有自己的ViewModel。主表单的每个contentControls“ content”属性都绑定到Main Form的ViewModel中的属性,该属性提供了将在该ContentControl中显示的UserControl。

例如,可以说我想要一个增强的文件浏览器,因此我将其构建到UserControl中。然后,我在另一个UserControl中有一个文件查看器。我希望能够以主体上的网格同时向他们展示。当我使用浏览器选择一个文件时,我希望所选文件可用于查看器USERCONTROL。

我使用了此设计,以便在应用程序中需要的任何地方都可以重复使用每个功能。我尚不清楚如何最好地传输它们之间的数据,因为在我的设计中,他们彼此不知道。有建议吗?谢谢!

有帮助吗?

解决方案

使用消息总线。如果您正在使用 MVVM灯拍摄, ,例如,使用 内置iMessenger实施. 。如果没有,那么自己滚动就很容易。

有消息总线后,您可以在一个ViewModel中注册消息,并从另一个ViewModel中发布消息。这是一种简单的方式,可以在ViewModels进行交流(一对一或以“广播”方式)进行交流。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top