gpt4 book ai didi

c# - MVVM轻消息-多个ViewModel实例

转载 作者:行者123 更新时间:2023-12-03 10:23:30 25 4
gpt4 key购买 nike

我敢肯定这已经被问过了,但是我找不到正确的答案。

与此场景有关:

我有一个网格,每行有两个图。单击Graph1上的内容,使用Graph1的Code Behind发送消息:

Messenger.Default.Send<MyCustomMessageType>(message);

然后,在图2的ViewModel上,我在构造函数中注册:
Messenger.Default.Register<MyCustomMessageType>(this, (message) => UpdateDataContext(message));

问题在于,Send现在将其发送到该类型的ViewModel的所有实例(确实有意义)。

如何阻止这种情况的发生?

最佳答案

发送 token 以指定接收者

void Register<TMessage>(object recipient, object token, Action<TMessage> action);
void Send<TMessage>(TMessage message, object token);

例子:
MessengerInstance.Register<Foo>(this, "thespecialone", theFoo=> FunctionFoo(theFoo));
MessengerInstance.Send<Foo>(message, "thespecialone");

关于c# - MVVM轻消息-多个ViewModel实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17471667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com