【发布时间】: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)
{
// ...
}
}
在屏幕上只有一个 LeftViewModel 和 RighViewModel 实例之前,它一直运行良好。但现在我想允许他们两个的任意数量的实例 - 总是成对的。所以LeftViewModel.DoInRight() 应该只在一个RighViewModel(情侣中的那个)中发送消息,而不是所有RighViewModel 实例。
8.7.2015 更新: 如何解决这种配对消息:
- 通过在消息中添加参数
target或id来创建某种消息通道/组(感谢@jophy job指出我的想法)。 - 拥有多个 EventAggregator。
- 放弃EventAggregator,直接调用方法。
- 或任何其他解决方案?
【问题讨论】:
标签: c# caliburn.micro eventaggregator