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