WPF Prism仅将事件发送到活动标签

时间:2012-06-12 08:46:04

标签: wpf events tabs prism

我有一个WPF棱镜应用程序,例如我想编辑的几个客户。例如,我有5个客户的5个标签。 每个客户都有5个子标签,如设置,细节等。

当我加载客户或更新它时,我希望发布到每个子选项卡的prism事件都会更新。 唯一的问题是:其他子标签将更新同一个客户以及...这不是计划:D

那么只有活动选项卡和那些视图模型可以订阅事件,或类似的东西吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我曾经做过类似的事情

我记不清确切的细节,但是标签订阅了LoadConsumerMessage的事件,除了常用的消息属性外,该消息还有两个额外的属性:Id字段和{ {1}}字段。

如果我想要一个特定的标签来加载消费者,我会使用我想要的标签的id填充IsHandled。例如,要在当前选项卡中加载客户,我将使用

Id

然后在处理事件的订阅者中,如果事件不匹配,我将忽略该事件

// Id was typically a Guid
var event = new LoadConsumerEvent() { Id = this.Id; };

如果我只想要第一个可用的标签来处理事件,我会在第一个订阅者中设置if (e.Id == Guid.Empty || e.Id == this.Id) { // Load Customer } 属性,如果它是真的则忽略该事件

IsHandled