2010-09-17 57 views
1

我試圖使用MVVM light messaging在導航過程中將一個值從一個頁面發送到另一個頁面(例如,將選定項目的ID發送到編輯頁面)。因此,列表頁面的視圖模型會發送一條消息,然後向重定向到編輯頁面的視圖發送導航消息。編輯頁面的viewmodel只有在頁面導航發生時纔會創建。所以當我在編輯頁面viewmodel註冊這個事件時,我從來沒有收到過這個消息?什麼是最好的解決方案?在Windows Phone中使用MVVM Light消息而不是查詢字符串

在此先感謝。

回答

3

你最好的解決方案是使用querystring而不是消息傳遞。如果您不使用查詢字符串,則必須處理應用程序被停用(tomestoned)等情況,然後用戶單擊「後退」並且應用程序加載第二頁而不接收消息。

但是,如果你想繼續這個路徑,你可以修改你的ViewModelLocator,使得你的頁面的ViewModel立即創建(例如在ctor中)而不是根據需要創建。由於ViewModelLocator是在加載App.xaml後立即創建的,因此您將知道任何視圖模型都將立即創建。只要你的視圖模型在構造函數中註冊消息,它就會收到消息。

相關問題