This is valuable information on hooking into DP system of WPF.
The answer is DependencyPropertyDescriptor. This is similar to PropertyDescriptor from WinForm.
http://msdn2.microsoft.com/en-us/library/system.componentmodel.dependencypropertydescriptor_members.aspx
For example, if you want to get notification whenever a property change but you don't own the code and you don't derive from the class and it does not expose SomethingChanged event. How can you get notification.
DependencyPropertyDescriptor dpDes = DependencyPropertyDescriptor.FromProperty(Control.BackgroundProperty);dpDes.AddValueChanged(myElement, myEventHandler);
So whenever someone do a SetValue/ResetValue/ClearValue on myElement.Background, myEventHandler will be raised. When you are done listening to change notification, you can do RemoveValueChanged(..) to unsubscribe.
BenCon was talking about this as well :-)