如何区分Prism事件的来电者?

时间:2012-06-25 11:02:59

标签: wpf events prism eventaggregator

我正在使用Prism的Event Aggregator,我从我的复合控件发布了一个事件。但是,如果开发人员在同一表单上使用该控件的两个实例,则订阅者如何区分事件?什么是最佳做法?

谢谢。

1 个答案:

答案 0 :(得分:1)

通常我只是传递EventMessage中的调用者或callerId,如果调用者不符合预期,订阅者将忽略该消息

// Subscribe
eventAggregator.GetEvent<SomeEvent>().Subscribe(SomeMethod);
public void ShowNews(SomeEventMessage e)
{
    if (e.CallerId != this.Id)
        return;

    Do Work();
}

// Broadcast
eventAggregator.GetEvent<SomeEvent>().Publish(
    new SomeEventMessage { CallerId = this.Id });