2009-01-20 33 views
0

我有一个WPF窗体,我正在与数据绑定。我从INotifyPropertyChanged中获得了事件,但我想知道如何获取正在监听的项目列表,以及如何激活已连接的处理程序。找出谁正在收听PropertyChangedEventHandler在c#

我该怎么做?

+0

我不明白你描述的场景。你有样品代码吗?当我读到它时,你正在倾听对象上的事件,并且想要在听众中发现其他听众是谁。 – 2009-01-20 15:14:27

回答

1

你对正在听的项目有什么意义?

您是否想知道哪些控件是绑定到您的属性的数据,或者您是否想要连接到PropertyChanged事件的事件处理程序列表?

后者可以通过调用事件的GetInvocationList来完成。

0

在您的事件实例上调用GetInvocationList()。 你会得到一个代表数组(如果有的话):Delegate []。对于每个委托你可以检查Method属性 - 获取充当监听器的方法的MethodInfo;或Target属性 - 获取侦听器方法定义的对象实例

0

感谢所有答案,我设法将它追踪到不同属性上的空引用(相当幸运的发现!)