2011-03-28 21 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