MVVM与对象的通信

时间:2012-06-22 06:41:51

标签: c# .net wpf mvvm prism

我正在尝试用Prism创建一个应用程序,我在模块之间的通信方面遇到了一些问题。

我有一个StatusModule,它基本上显示Statusmessages,但也可以向用户显示某些工作正在进行中(不确定),显示不同的图标,显示/隐藏控件等等。

通常我会使用具有所有这些属性的状态对象并将其用作参数,但因为在棱镜中建议强耦合我不知道应该怎么做。

为每个属性创建4-5事件可能是不好的做法,我还想到在我的“交互”模块中创建一个接口,其中包含事件和资源。

你们会推荐什么?

1 个答案:

答案 0 :(得分:0)

许多状态事件可能确实不是最佳解决方案;但是,如果有一两个被大量使用(比如在状态栏中显示状态消息),为方便起见,我会将它们公开为事件。

对于其余部分,您可以根据您使用的内容,通过MEF或Unity公开StatusModule,或者更确切地说是由StatusModule实现的接口IStatusModule。这样,任何想要显示状态的组件都会导入IStatusModule并使用它。