我的體系結構如下: 桌面應用程序,.Net 4.5,C#,WPF,MVVM Light,Messenger,IoC - ViewModel定位器,所以ViewModels不知道關於視圖的任何東西。MVVM light,通過Messenger從ViewModel發送消息到尚未初始化的新子窗口
我有一些元素的數據網格主視圖,然後我想在數據網格雙擊後顯示在新/子窗口每個元素的細節。
我已經綁定事件雙擊主視圖到主視圖模型。從主視圖模型中的這個事件處理器,消息通過Messanger發送。
新視圖(新/子窗口)通過代理也在雙視圖中在主視圖中創建。
新建/子窗口是找到他的視圖模型,該視圖模型登記在他的構造函數中的特定消息的視圖。
問題在於新/子窗口(新視圖和視圖模型等)創建得太遲,因爲在新視圖模型註冊時已經發送消息。
你知不知道這樣的建築模式。任何想法將不勝感激。
([將數據傳遞給它時啓動新的視圖模型的最佳途徑]的可能重複http://stackoverflow.com/questions/18497991/best-way-to-pass-數據到新視圖模型--IT-是啓動時/ 18521197#18521197) –
WP7Contrib具有這種稱爲[LastMessageReplayMessenger]實現(http://wp7contrib.codeplex.com/SourceControl/latest#7.0/WP7Contrib.Messaging /LastMessageReplayMessenger.cs)。這些代碼可以在WPF中使用,但codeplex中的.dll僅爲WP創建。查找關於LastMessageReplayMessenger的博客文章[here](http://blogs.xamlninja.com/xaml/wp7-contrib-the-last-messenger) – har07