0

我在一个视图模型中有一个订阅方法,用于侦听另一个视图模型中的发布事件。出于某种原因,我无法弄清楚,当发布方法被触发时,订阅方法会运行多次(在我的情况下每次运行四次)。我在每个发布上都有断点,除了第一次发布调用之外,它们都没有触发。

调用堆栈不会随着订阅多个调用的发生而改变。

如何找出导致多次订阅调用发生的原因?

更新:当我找到它时,原来这是一个“doh”的答案。有问题的视图模型是表格/网格线的视图模型集合,自然,添加到网格的行越多,添加到事件聚合器的订阅越多。我需要实现一些取消订阅逻辑来摆脱那些我不想要的。

4

1 回答 1

0

如果您对此使用依赖注入,您是否可以创建一个满足 IEventAggregator 并路由到 EventAggregator 的虚拟包装类并在那里捕获所有订阅调用?我已经看到这种行为发生在 ViewModel 实例化和撕下选项卡控件上发生的订阅中。

于 2011-09-10T01:17:16.837 回答