MVVM光从ViewModel发送消息到View
本文关键字:消息 View 光从 ViewModel MVVM | 更新日期: 2023-09-27 18:09:37
我是MVVM light的新手,我在使用Messenger时遇到了一些问题。
我试图从ViewModel发送消息到视图,但这对我不起作用,我试过通过帖子和示例代码,但我认为有一些非常简单的东西,我错过了。谢谢你的帮助。
在我的ViewModel中我发送了一个消息
Messenger.Default.Send(new ClearNewProjectSettingsMessage());
这是我的Message类,我真的不知道在这里放什么因为所有东西都在我的View类
public class ClearNewProjectSettingsMessage
{
public ClearNewProjectSettingsMessage()
{
}
}
我在Views构造函数中注册了这个消息:
Messenger.Default.Register<ClearNewProjectSettingsMessage>(
this,
() => ClearSettings()
);
不幸的是,这不能编译,所以我试着这样做:
Messenger.Default.Register<ClearNewProjectSettingsMessage>(this,ClearSettings);
但它仍然不工作。
这是我想要调用的方法(在视图中):
private void ClearSettings()
{
passwordBox.Clear();
}
谢谢。
现在我还没有使用过MVVM Light Messenger,但是与任何事件聚合器/消息总线一样,处理程序方法接受它处理的对象作为参数是有意义的:
我已经检查了源代码和注册看起来如下:
public virtual void Register<TMessage>(object recipient, Action<TMessage> action)
考虑到这一点,这个定义:
private void HandleClearSettings(ClearNewProjectSettingsMessage message)
{
}
应该修复你的注册:
Messenger.Default.Register<ClearNewProjectSettingsMessage>(this, HandleClearSettings);