MVVM Light Messenger接收方法
本文关键字:方法 Messenger Light MVVM | 更新日期: 2023-09-27 18:20:41
我正在使用MVVM Light在两个ViewModel之间发送消息。在接收VM中,我正在尝试以下
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
}