Hooking into changes on a Dependency Property on an object that's not yours

I came across a scenario today where I needed to hook into dependency property changes on an object that wasn't mine and found this new trick I'd not seen before, you can get the property's descriptor and add a new value changed handler in code.

var descriptor = DependencyPropertyDescriptor.FromProperty(RadioButton.IsCheckedProperty, typeof(RadioButton));
descriptor.AddValueChanged(radioButton, (s,e) => { /* ... */ });

Don't forget to remove the handler again once you're finished with it to prevent memory leaks like so.


Share this: