我在一个视图模型中有一个subscribe方法,用于侦听另一个视图模型中的发布事件。出于某种原因,我无法弄清楚,当触发发布方法时,subscribe方法会多次运行(在我的情况下每次运行四次)。我在每次发布时都有断点,而不是第一次发布调用,它们都没有被触发。
调用堆栈不会随着订阅多次调用而发生变化。
如何找出导致多次调用订阅的原因?
更新:当我找到它时,原来这是一个'doh'的答案。有问题的视图模型是表/网格线的视图模型的集合,当然,添加到网格中的行越多,添加到事件聚合器的订阅就越多。我需要实现一些取消订阅逻辑来摆脱我不想要的那些。
答案 0 :(得分:0)
如果您正在使用依赖注入,是否可以创建一个满足IEventAggregator的虚拟包装类并路由到EventAggregator并捕获所有订阅调用?我已经看到这种行为发生在ViewModel实例化和撕下标签控件上发生的订阅。