【发布时间】:2012-06-24 11:07:18
【问题描述】:
我目前正在尝试使用 Prism 创建一个应用程序,但我在模块之间的通信方面遇到了一些问题。
我有一个状态模块,它基本上显示状态消息,但也可以向用户显示一些工作正在进行中(不确定),显示不同的图标,显示/隐藏控件等等。
为此,通常我会使用具有所有这些属性的状态对象并将其用作参数,但因为在 prism 中建议使用强耦合,所以我不知道该怎么做。
为每个属性创建 4-5 个事件可能是不好的做法,.. 我还考虑在事件和资源所在的“交互”模块中创建一个接口。
你们会推荐什么?
【问题讨论】:
-
您可以使用事件聚合器在模块之间进行通信
-
是的,但 eventtaggregator 只支持基本类型,对吗?所以我必须为我拥有的每个属性(显示、自动隐藏、消息...)创建一个事件
-
您可以使用事件聚合器公开状态对象
-
是的,但这意味着我需要在“交互”或“状态”DLL 中的“状态”类,对吗?一个接口是不够的,因为试图设置状态的模块必须实例化一个要发布的类。目前我正在创建一个 IStatus 对象作为 StatusRegion 的上下文并订阅 notifypropertychanged 事件的
-
也许你会对我关于Simplifying Prism's EventAggregator的博文感兴趣?