我想通過使用WPF和PRISM創建一個WPF應用程序。我也使用MEF和mvvm。有可能有2個可以通過使用事件聚合器相互通信的viewmodels?例如。在視圖模型A中發佈並在Viewmodel B中訂閱?如果是的話如何?我已經構建了一個包含多個視圖模型的程序,其中一些視圖模型應該可以相互通信,但是不管怎樣,如果我使用eventaggregator在Viewmodel A中發佈,視圖模型B中的subscribe將永遠不會被識別爲屬於同一個eventaggregator,因此我無法更新我的視圖連接到視圖模型B.PRISM MEF通過在wpf中使用Eventaggregator從viewmodel到viewmodel的通信
0
A
回答
0
唯一的可能性是ViewModel「B」未加載或尚未訂閱該事件。如果不是這樣,我建議你粘貼一些片段。
0
您是否使用WeakReference(弱訂閱)訂閱?如果是這樣,並且您的訂戶沒有在其他地方引用,則可能會在發佈事件之前收集垃圾並將其消失。
1
這是定義事件聚集
(1)創建事件此Agg ..
公共類YourEvent基本關鍵步驟:CompositePresentationEvent {
}
(2)發行商vm
eventAggregator.Get()。Publish(object);
(3)訂閱VM
YourEvent是eventObj = eventAggregator.Get();
if (subscriptionToken != null)
{
eventobj.Unsubscribe(subscriptionToken);
}
subscriptionToken = eventobj.Subscribe(YourEventHandler, ThreadOption.UIThread, false, yourfun);
0
EventAggregator始終是相同的,您必須將它傳遞給每個Viewmodel。 棱鏡和MEF能爲你做到這一點:使用PRISM的統一
你可以在構造函數中加載EventAggregator
你可以用MEF
0
注入EventAggregator的參考你有ViewModel「B」和ViewModel「A」的實例嗎?您是否在訂閱代碼運行之前發佈了該事件?他們是否正在發佈/訂閱相同的事件?
EventAggregator.GetEvent(Of MyEventType).Subscribe(Sub()
End Sub)
相關問題
- 1. MvvM ViewModel到ViewModel通信
- 2. 通過在WPF Prism中注入特定的ViewModel導航到視圖
- 3. WPF PRISM/Unity viewModel參數
- 4. Prism:在ViewModel中共享ViewModel的屬性
- 5. MVVM模型到ViewModel通信
- 6. RadBusyIndicator沒有顯示來自ViewModel的PRISM/MEF/WPF
- 7. ViewModel事件通信
- 8. ViewModel通信問題
- 9. Prism for WPF - 如何發送CancelEventArgs到viewmodel?
- 10. 何處使用MEF和Prism加載AppSettings並設置ViewModel屬性
- 11. 使用MVVM和viewmodel通信的WPF窗口模式對話框
- 12. 如何在使用Prism處置ViewModel時驗證EventAggregator的取消訂閱方法
- 13. 如何通過行爲清除綁定到ViewModel的WPF PasswordBox?
- 14. 從MainView與ViewModel進行通信
- 15. 棱鏡 - 如何使用MEF在ViewModel中導入IRegionManager使用MEF
- 16. WPF從ViewModel綁定到DependencyProperty
- 17. 反正有沒有通過wpf中的viewmodel來調用命令?
- 18. MVC通過JSON ViewModel查看
- 19. 如何通過viewmodel查看
- 20. 通過TempData傳遞ViewModel?
- 21. WPF MVVM Light Messenger和Prism EventAggregator
- 22. WPF如何執行命令從主ViewModel到MVVM中的子ViewModel
- 23. WPF將圖像通過WCF綁定到ViewModel的TileLayoutControl
- 24. 使用MVVM Light從ViewModel查看通知
- 25. 從Controller解析ViewModel的命令? (PRISM)
- 26. 通用EventAggregator?
- 27. ViewModel與事件之間的通信
- 28. WPF如何從MVVM中的子ViewModel調用父ViewModel中的某些邏輯
- 29. WPF MVVM - 通過ViewModel訪問視圖中DataGrid的DependencyProperty
- 30. MEF WPF - 通過插件