【问题标题】:Caliburn.Micro EventAggregator with multiple instances具有多个实例的 Caliburn.Micro EventAggregator
【发布时间】:2015-07-07 14:17:38
【问题描述】:

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

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 实例。

8.7.2015 更新: 如何解决这种配对消息:

  • 通过在消息中添加参数targetid 来创建某种消息通道/组(感谢@jophy job 指出我的想法)。
  • 拥有多个 EventAggregator。
  • 放弃EventAggregator,直接调用方法。
  • 或任何其他解决方案?

【问题讨论】:

    标签: c# caliburn.micro eventaggregator


    【解决方案1】:

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

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

    【讨论】:

    • 所以做一些消息通道。谢谢你的想法。我会等待更多回复。
    猜你喜欢
    • 1970-01-01
    • 2014-05-09
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多