我想知道是否有可能将具有给定DependencyProperty
的所有绑定设置为源?
我通过DependencyPropertyDescriptor.FromProperty(DependencyProperty, Type)方法查看DependencyPropertyDescriptor
课程,但遗憾的是没有成功。它只允许为更改通知注册一个监听器,但它无法检查已注册的监听器(在我的情况下是绑定)。
我还查看了BindingOperation类,其中所有操作仅适用于绑定目标,而非源。
如果我能够获得已注册侦听器的多播委托并获取调用列表,那就足够了。
修改
在使用了一些反射器魔法后,我决定尝试通过实现ICustomTypeDescriptor并拦截GetProperties方法来挂钩PropertyDescriptor上的Add / Remove ValueChanged方法。从那里我可以拦截正在注册变更通知的代表......
答案 0 :(得分:1)
嗯,我也有兴趣知道这个!可能微软从未提供任何此类API,因为它具有反依赖性要求。在WPF中,GUI(目标!)是依赖项值更改的驱动程序,因此所有依赖项属性都会上升或附加到目标gui,因此API是目标驱动而不是源(对于该目标可能很多!)。