2012-06-22 86 views
1

我目前正在嘗試用Prism創建一個應用程序,並且模塊之間的通信存在一些問題。與對象的MVVM通信

我有一個StatusModule基本上顯示Statusmessages,但也可以顯示用戶,一些工作正在進行(不確定),顯示不同的圖標,顯示/隱藏控制等。

對於通常我會使用具有所有這些屬性的狀態對象,並將其用作參數,但因爲在棱鏡強耦合建議我不知道該怎麼做。

創建4-5每個屬性的事件可能是不好的做法,..我還想到在我的「交互」模塊中創建一個接口,事件和資源位於此處。

你們會推薦什麼?

+2

您可以使用事件聚合器在模塊之間進行通信 – pchajer

+0

是的,但eventaggregator只支持基本類型,是否正確?所以我必須爲每個屬性創建一個事件(Show,AutoHide,Message,...) – raphi011

+0

您可以使用事件聚合器公開狀態對象 – pchajer

回答

0

許多地位事件可能不是最好的解決方案;但是,如果有一兩個用法很多(例如在狀態欄中顯示狀態消息),爲方便起見,我會將它們暴露爲事件。

其餘的,您可以通過MEF或Unity公開由StatusModule實現的StatusModule或IStatusModule接口,具體取決於您使用的是什麼。這樣,任何想要顯示狀態的組件都會導入IStatusModule並使用它。