获取所有绑定到DependencyProperty

时间:2012-02-23 10:02:32

标签: wpf data-binding

我想知道是否有可能将具有给定DependencyProperty的所有绑定设置为

我通过DependencyPropertyDescriptor.FromProperty(DependencyProperty, Type)方法查看DependencyPropertyDescriptor课程,但遗憾的是没有成功。它只允许为更改通知注册一个监听器,但它无法检查已注册的监听器(在我的情况下是绑定)。

我还查看了BindingOperation类,其中所有操作仅适用于绑定目标,而非源。

如果我能够获得已注册侦听器的多播委托并获取调用列表,那就足够了。

修改

在使用了一些反射器魔法后,我决定尝试通过实现ICustomTypeDescriptor并拦截GetProperties方法来挂钩PropertyDescriptor上的Add / Remove ValueChanged方法。从那里我可以拦截正在注册变更通知的代表......

1 个答案:

答案 0 :(得分:1)

嗯,我也有兴趣知道这个!可能微软从未提供任何此类API,因为它具有反依赖性要求。在WPF中,GUI(目标!)是依赖项值更改的驱动程序,因此所有依赖项属性都会上升或附加到目标gui,因此API是目标驱动而不是源(对于该目标可能很多!)。