MVVM Light Messenger 接收方法
MVVM Light Messenger Receive Method
我正在使用 MVVM Light 在两个 ViewModel 之间发送消息。在接收虚拟机中,我正在尝试以下操作
Messenger.Default.Register<NotificationMessage>(this, async (msg) => {
await HandleMessage(msg);
});
private async Task HandleMessage(NoficationMessage message)
{
... code using await
}
第一次发送消息(通过单击按钮)时,异步方法运行。下次发送消息时什么也没有发生 - 方法不会被调用(通过断点检查)。
Register 方法可以这样异步吗?
有什么解决方法?
我相信对于异步事件,你需要 void。
尝试以下方法
Messenger.Default.Register<NotificationMessage>(this, HandleMessage);
private async void HandleMessage(NotificationMessagemessage)
{
... code using await
}
我正在使用 MVVM Light 在两个 ViewModel 之间发送消息。在接收虚拟机中,我正在尝试以下操作
Messenger.Default.Register<NotificationMessage>(this, async (msg) => {
await HandleMessage(msg);
});
private async Task HandleMessage(NoficationMessage message)
{
... code using await
}
第一次发送消息(通过单击按钮)时,异步方法运行。下次发送消息时什么也没有发生 - 方法不会被调用(通过断点检查)。
Register 方法可以这样异步吗?
有什么解决方法?
我相信对于异步事件,你需要 void。
尝试以下方法
Messenger.Default.Register<NotificationMessage>(this, HandleMessage);
private async void HandleMessage(NotificationMessagemessage)
{
... code using await
}