如何找到RaisePropertyChanged的监听器

时间:2014-06-20 17:06:15

标签: c# wpf mvvm prism

我有一个班级NoteCompositeViewModel,其中一个方法执行RaisePropertyChanged(string.Empty)。如果通过此方法引发此事件,我怎样才能找到谁在听这个事件?我使用Visual Studio 2012和Resharper。

我试图调试应用程序,显然这个事件导致其他类运行各自的方法,但我需要知道哪些方法,以便我可以在其中放置断点。

1 个答案:

答案 0 :(得分:1)

就调试而言,可能最简单的方法是在视图模型基类中的这一行放置一个断点:

if (PropertyChanged != null)
    PropertyChanged(this, new PropertyChangedEventArgs(propName));

点击F11或步入,您应该按顺序跟踪调用列表中的每个方法。

如果你在调试器中,你也可以检查" PropertyChanged"在观察窗口。如果展开得足够多,则可以看到完整的调用目标列表。其中一些是由于绑定 - 您可以告诉这些,因为目标将是基础结构类" System.Windows.Data.WeakPropertyChangedListener"。

Invocation list