2013-10-27 79 views
3

我有一個StockModule和一個PurchaseModule。當我收到新的採購時,我將其添加到數據庫中的庫存模型中。如何將一個不同模塊的視圖模型暴露給另一個模塊中的控制器?

我的問題是,我在我的StockModule的ViewModel中有一個ObservableCollection stockList,添加股票的控制器位於PurchaseModule中。我不知道我該如何告訴StockModule中的ViewVodel我已經更新了stockList。

我在wpf和prism中使用了數據綁定。更新模塊中的視圖很容易,但我還沒有找到在兩個模塊之間執行的方法。

當我初始化我的PurchaseModule時,我應該傳遞一個對StockController的引用嗎?我不想那樣做,因爲那看起來太緊密了。

回答

3

您應該使用Prism的Marlon的MediatorEventAggregator來實現ViewModel或組件之間的通信(它們可以位於單個模塊中,也可以位於多個模塊之間)。

在你的情況,你的視圖模型在PurchaseModule將公佈通過調解/ EventAggregator消息(比方說,StockAdded),然後從StockModule您的視圖模型將監聽此消息,並更新其數據和效果的看法也是如此。

更多閱讀關於中保http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/

棱鏡EventAggregator:http://msdn.microsoft.com/en-us/library/ff921122.aspx

+0

我已經使用EventAggregator從棱鏡而沒有想到用它在模塊之間。 D'哦!我現在就試試這個。 – Akolopez

+0

它像一個魅力。那真是愚蠢。謝謝! – Akolopez

+0

很酷。很高興,它確實幫助你:) – sthotakura

相關問題