C# MVVM light从ViewModel向视图发送消息
我是MVVM light的新手,我在使用Messenger时遇到了一些问题 我试图从ViewModel向视图发送一条消息,但这对我来说不起作用,我尝试过阅读文章和示例代码,但我认为我缺少一些非常简单的东西。。我感谢你的帮助 在我的ViewModel中,我发送了一条消息C# MVVM light从ViewModel向视图发送消息,c#,mvvm,messenger,C#,Mvvm,Messenger,我是MVVM light的新手,我在使用Messenger时遇到了一些问题 我试图从ViewModel向视图发送一条消息,但这对我来说不起作用,我尝试过阅读文章和示例代码,但我认为我缺少一些非常简单的东西。。我感谢你的帮助 在我的ViewModel中,我发送了一条消息 Messenger.Default.Send(new ClearNewProjectSettingsMessage()); 这是我的消息类,我真的不知道该在这里放什么,因为所有的东西都在我的视图类中 public class C
Messenger.Default.Send(new ClearNewProjectSettingsMessage());
这是我的消息类,我真的不知道该在这里放什么,因为所有的东西都在我的视图类中
public class ClearNewProjectSettingsMessage
{
public ClearNewProjectSettingsMessage()
{
}
}
我在视图构造函数中注册消息:
Messenger.Default.Register<ClearNewProjectSettingsMessage>(
this,
() => ClearSettings()
);
谢谢。现在我还没有使用过MVVM Light Messenger,但与任何事件聚合器/消息总线一样,处理程序方法将其处理的对象作为参数,这是有意义的: 我已经检查了源代码,注册情况如下:
public virtual void Register<TMessage>(object recipient, Action<TMessage> action)
应修复您的注册:
Messenger.Default.Register<ClearNewProjectSettingsMessage>(this, HandleClearSettings);
Messenger.Default.Register(此为HandleClearSettings);
谢谢您的回复!我没有意识到handler方法将它处理的对象作为参数。。我使用以下命令注册了消息:Messenger.Default.Send(new ClearNewQCProjectSettingsMessage());可以吗?我真的不明白你是如何注册你的信息的,因为你没有任何指向“ClearNewProjectSettingsMessage”的信息,我需要进一步研究,你能给我指一下资源吗?谢谢@Manal,您可以在有疑问时进行检查。:)
public virtual void Register<TMessage>(object recipient, Action<TMessage> action)
private void HandleClearSettings(ClearNewProjectSettingsMessage message)
{
}
Messenger.Default.Register<ClearNewProjectSettingsMessage>(this, HandleClearSettings);