我有一个WPF棱镜应用程序,例如我想编辑的几个客户。例如,我有5个客户的5个标签。 每个客户都有5个子标签,如设置,细节等。
当我加载客户或更新它时,我希望发布到每个子选项卡的prism事件都会更新。 唯一的问题是:其他子标签将更新同一个客户以及...这不是计划:D
那么只有活动选项卡和那些视图模型可以订阅事件,或类似的东西吗?
感谢您的帮助!
答案 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