我在一个视图模型中有一个订阅方法,在另一个视图模型中侦听发布事件。由于某些原因,我无法确定,当引发发布方法时,订阅方法运行多次(在我的示例中,每次运行4次)。我在每个发布上都有断点,除了第一次发布调用之外,它们都没有触发。
当订阅多个调用发生时,调用堆栈不会改变。
我如何才能弄清楚是什么原因导致多个电话订阅发生?
更新:当我找到它时,发现这是一个“doh”答案。所讨论的视图模型是表/网格行的视图模型集合,自然地,添加到网格中的行越多,事件聚合器中添加的订阅就越多。我需要实现一些取消订阅逻辑,以摆脱那些我不想要的逻辑。
发布于 2011-09-10 01:17:16
如果与此一起使用依赖项注入,是否可以创建一个满足IEventAggregator的虚拟包装器类,并将其路由到EventAggregator并捕获那里的所有订阅调用?我已经看到这种行为发生在ViewModel实例化的订阅中,再加上删除选项卡控件。
https://stackoverflow.com/questions/7368077
复制相似问题