0

我有一个 WPF Prism 应用程序,其中有几个我想编辑的客户。因此,例如,我有 5 个标签供 5 个客户使用。每个客户都有 5 个子选项卡,例如设置、详细信息等。

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

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

感谢帮助!

4

1 回答 1

0

不久前我做了这样的事情

我不记得确切的细节,但是标签订阅了带有 a 的事件LoadConsumerMessage,并且消息除了通常的消息属性之外还有两个额外的属性:一个Id字段和一个IsHandled字段。

如果我想要一个特定的选项卡来加载消费者,我会Id用我想要的选项卡的 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在第一个订阅者中设置属性,如果它是真的则忽略该事件

if (e.IsHandled)
    return;

// Do processing

e.IsHandled = true;
于 2012-06-12T16:50:35.770 回答