我創建了一個MainView,它的DataContext是一個在xaml中初始化的MainViewModel。
MainView包含綁定到MainViewModel的Content屬性的ContentControl。
我在MainViewModel構造函數中添加了一些內容,因此如果當前用戶未登錄,它會自動將LoginView(以及相應的DataContext LoginViewModel)加載到此Content內容中。EventAggregation快速入門?
現在的問題是,我該怎麼辦時,用戶成功登錄:
'To be called from the LoginCommand
Private Sub Login
'Do Login
If WebContext.Current.User.IsAuthenticated Then
' - Publish a global event to be subscribed and caught from the MainViewModel
' - Close LoginView
' - The MainViewModel should set it's Content property back
' to what the user initially intended to open
End If
End Sub
這是如何完成的?
注:我更喜歡使用棱鏡的EventAggregator
Rathen市的那麼其他的東西,但我不知道:
- 如何流傳出來的的ViewModels
- 如何創建事件之間(我不需要傳遞參數,我也不需要它是通用的,只是
Action
,LoginAction
- 無參數 - 我如何從MainViewMode訂閱
- 我不使用MEF或Unity,我也不使用分離式模塊,所有。我的應用程序在一個單一裝配。
- 我不喜歡寫代碼隱藏在這兩個VB.NET或C#所有
- 回答任何代碼welcommed相同
任何幫助,將推薦
感謝您指出'EventAggregator'不依賴於MEF或Unity,我認爲它是由外部引擎維護的。 – Shimmy 2011-04-08 02:25:50
沒問題。我希望它能幫助你。 – MacNET 2011-04-08 10:50:51
請參閱[this](http:// stackoverflow。com/q/5590007/75500「Non-Generic CompositePresentationEvent and EventSubscription?」)相關的問題,您可能會爲其添加一些重要信息。 – Shimmy 2011-04-09 17:36:03