2011-03-28 42 views
1

我总是看到Prism的eventaggregator,并且只能用于非常奇怪的GetEvent。我习惯于旧的CAB事件系统 - 现在使用Marlon Grech的Mediator实现 - 我已经定义了字符串常量,这样我就不必创建额外的类来触发/包装我的数据(如果它是简单的int或value类型的话)。使用Prism EventAggregator像旧的CAB事件系统和字符串事件名称

[MediatorMessageSink(MediatorMessages.AddSchoolclass, ParameterType = typeof(int))] 
     public void OnSchoolclassAdded(int schoolclassId) 
     { 
      // do stuff with schoolclassId 
     } 

我如何可以做同样来自Prismn

的eventaggregator
+0

使用CAB属性方法,我可以设置相同的方法来订阅多个不同的事件。希望棱镜有这个.. – 2015-10-16 00:23:38

回答

0

你可以声明一个事件类中使用您的所有汇总事件,并传递一个字符串作为它的有效载荷,但我不会”我真的推荐这种方法。棱镜开发人员会发现它很混乱。

事件聚合器使用与旧CAM不同的体系结构。当我做出改变时,对于事件对象的需求我也不高兴。但是我已经在这种方法上被卖出了 - 事件对象基本上是我使用ReSharper模板生成的一行代码。我非常喜欢它的原因是,它给了我一个地方来放置我可能需要的任何逻辑以配合该事件。

+0

写一个事件类为每个值火是愚蠢的。 – msfanboy 2011-04-01 19:21:55

+0

其实它很聪明。一个设计良好的应用就像一个瑞士手表,每个班级在整个装配中扮演着一个角色。每个班级都做得很好,他们都协作完成所需的工作。比旧的单一编程风格要脆弱得多,而且更容易维护。 – 2011-04-02 15:31:01

+0

对于瑞士手表/刀你是对的。每个工具都有其目的。目前我的问题是什么让我更快地发展。 – msfanboy 2011-04-07 12:42:17