0
我有兩個視圖及其對應的ViewModels,我想從一個視圖文本發送到另一採用MVVM燈如下與傳遞消息通過MVVM光
在第一視圖模型我打電話以下方法
掙扎public void NavigatePage()
{
string temp = "temp value";
Messenger.Default.Send("temp");
Frame frame = Window.Current.Content as Frame;
if (frame != null) frame.Navigate(typeof(MyPage), temp);
}
,而在第2頁視圖模型我有下面的代碼
public MyViewModel()
{
Messenger.Default.Register<string>(this, MessageReceived);
}
private string test;
public string Test
{
get { return test; }
set { test = value; RaisePropertyChanged("Test");}
}
private void MessageReceived(string message)
{
Test = message;
}
當我調試我的代碼,這個視圖模型的構造函數獲取調用,但在MES sageReceived沒有被調用,因此屬性測試永遠不會被設置,我缺少一些東西,請幫助
嘗試指定正在發送的消息的類型Messenger.Default.Send(「temp」); –
kindasimple
2013-02-26 02:42:17
對不起,但它dosn't幫助 – 2013-02-26 10:02:11
你確定,你有** MyViewModel創建**之前NavigatePage() 執行? mvvm燈光消息的工作方式應在發送之前訂閱,以便接收內容(因爲執行Send方法時會立即執行消息處理) – Isantipov 2013-03-01 15:18:39