Caliburn.Micro 具有多个实例的 EventAggregator

Caliburn.Micro EventAggregator with multiple instances

我有两个 Caliburn.Micro ViewModels 通过 EventAggregator 相互通信:

public class LeftViewModel
{
    // ...
    public void DoInRight()
    {
        messanger.PublishOnUIThread(new DoInRightMessage());
    }
}

public class RightViewModel : IHandle<DoInRightMessage>
{
    public void Handle(DoInRightMessage e)
    {
        // ...
    }
}

在屏幕上只有一个 LeftViewModelRighViewModel 实例之前,它一直运行良好。但现在我想允许任意数量的实例 - 总是成对出现。所以 LeftViewModel.DoInRight() 应该只在一个 RighViewModel 中发送消息(一对中的一个),而不是所有 RighViewModel 个实例。

2015 年 7 月 8 日更新: 如何解决这种配对消息:

您可以尝试为每个视图使用某种 ID。

有一个类似的问题Caliburn.Micro and event aggregator -unwanted call handle method