我正在使用此:
Messenger.Default.Send<NameMessage>(new NameMessage("Test"));
此消息在两个View模型中注册。
ViewModel 1:
Messenger.Default.Register<NameMessage>(this, MethodInMyViewModel1);
ViewModel 2:
Messenger.Default.Register<NameMessage>(this, MethodInMyViewModel2);
当我发送消息时,将调用两种方法。
但是我每次都有一个实例。
因此应用程序停止。
如何用相同的消息调用特定的视图模型?
假设您正在谈论mvvmlight Messenger命名空间,您总是可以根据要定位的VM发送具有不同值的相同消息,因此每个VM都应该这样注册(一个波纹管用于VM1):
Messenger.Default.Register<NameMessage>(this, (m) =>
{
switch (m.Value)
{
case "VM1":
MethodInMyViewModel1();
break;
}
});
对VM2执行相同的操作,并且在发送消息时,将适当的目标VM消息传递给NameMessage Value
。