如何向多个视图发送消息

时间:2012-04-12 23:05:49

标签: mvvm-light

我有一个应用程序,它基于相同的视图和viewModel呈现许多view-viewModel对。 (即有许多视图 - > viewModel实例对)

我可以使用Messenger从viewModel发送/注册消息进行查看,当我从视图发送消息时,它将被所有视图处理(它们都注册了消息)。

如何使用Messenger将viewModel中的消息发送到创建viewModel的特定视图? (所有视图都已注册该消息,但我只希望其中一个视图处理该消息)

1 个答案:

答案 0 :(得分:1)

您可以在发送和注册信息时使用令牌。

假设您必须将Message From ViewModel传递给ABCView,那么您可以像这样使用Messenging ..

对于Ex,如果必须传递布尔值,则使用:

Messenger.Defalut.Send<bool>(true,"ForAbcView");

在ABCView中你可以这样注册:

Messenger.Default.Register<bool>(this,"ForAbcView",(b)=>{ //Some Code });

使用令牌时,Messenger Sender只会查找具有相同令牌的Register。它只调用具有相同tocken的方法。