我对MVVM灯很新,我在使用Messenger时遇到了一些问题..
我试图从ViewModel向View发送消息,但这对我不起作用,我已经尝试过浏览帖子和示例代码,但我觉得有一些非常简单的事我想念...我很感激你的帮助..
在我的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();
}
感谢。
答案 0 :(得分:3)
现在我还没有使用MVVM Light Messenger,但是与任何事件聚合器/消息总线一样,它是有意义的,因此处理程序方法接受它处理作为参数的对象: / p>
我检查了源代码,注册如下: 考虑到这一点,这个定义: 应修正您的注册:public virtual void Register<TMessage>(object recipient, Action<TMessage> action)
private void HandleClearSettings(ClearNewProjectSettingsMessage message)
{
}
Messenger.Default.Register<ClearNewProjectSettingsMessage>(this, HandleClearSettings);