MVVM Light Messenger接收方法

时间:2015-11-06 02:32:02

标签: c# wpf mvvm mvvm-light

我正在使用MVVM Light在两个ViewModel之间发送消息。在接收VM中,我正在尝试以下

Messenger.Default.Register<NotificationMessage>(this, async (msg) => {
    await HandleMessage(msg);
});

private async Task HandleMessage(NoficationMessage message)
{
    ... code using await
}

第一次发送消息(通过单击按钮),异步方法运行。下次发送消息时没有任何反应 - 该方法不会被调用(通过断点检查)。

以这种方式在Register方法上允许异步吗?

什么是解决方法?

1 个答案:

答案 0 :(得分:3)

我相信异步事件,你需要无效。

尝试以下

Messenger.Default.Register<NotificationMessage>(this, HandleMessage);
private async void HandleMessage(NotificationMessagemessage)
{
    ... code using await
}