在我的MainViewModel中,我只有打开不同页面的RelayCommands。 Theese命令就像这样
Messenger.Default.Send<int>(2015);
ViewModel.ReportViewModel reportVM = new ReportViewModel(report);
Views.ReportView pagReport = new ReportView() { DataContext = reportVM };
ApplicationHelper.NavigationService(pagReport);
ReportViewModel中的我有
public ReportViewModel(string report)
{
Messenger.Default.Register<int>(this, Doit);
ShowReport(report);
}
private void Doit(int val)
{
int test = val;//code never touch this line
}
我做错了什么?
答案 0 :(得分:2)
根据我上面的评论,您在发送邮件后实例化/新建reportVM 。如果之前没有ReportViewModel 的实例,则发送该消息,则该消息没有侦听器。
//Instantiate first:
ViewModel.ReportViewModel reportVM = new ReportViewModel(report);
Views.ReportView pagReport = new ReportView() { DataContext = reportVM };
ApplicationHelper.NavigationService(pagReport);
//Send the message:
Messenger.Default.Send<int>(2015);