我有一个StockModule和一个PurchaseModule。当我收到新的购买时,我将其添加到数据库中的库存模型中。
我的问题是我的StockModule中的ViewModel中有一个ObservableCollection stockList,而添加该库存的控制器位于PurchaseModule中。我不知道我应该如何告诉StockModule中的ViewVodel我已经更新了stockList。
我在wpf和prism中使用数据绑定。更新模块中的视图很容易,但我没有找到在两个模块之间进行操作的方法。
初始化PurchaseModule时,是否应该将引用传递给StockController?我不想那样做,因为那似乎太紧密了。
答案 0 :(得分:3)
您应该使用来自Prism的Marlon的Mediator
或EventAggregator
来实现ViewModel或组件之间的通信(它们可以在单个模块中,也可以在多个模块中)。
在您的情况下,PurchaseModule
中的ViewModel会通过Mediator / EventAggregator发布消息(例如StockAdded
),然后来自StockModule
的ViewModel将侦听此消息并更新它的数据和实际的视图。
更多关于Mediator的阅读:http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/
Prism EventAggregator:http://msdn.microsoft.com/en-us/library/ff921122.aspx