public BinderDetails(DependencyObject owner) { this._store = ((IDependencyObjectStoreProvider)owner).Store; this._owner = owner; _store.RegisterPropertyChangedCallback(_store.DataContextProperty, Binder_DataContextChanged); _store.RegisterPropertyChangedCallback(_store.TemplatedParentProperty, Binder_TemplatedParentChanged); _props = DependencyProperty.GetPropertiesForType(owner.GetType()); DependencyObjectExtensions .RegisterDisposablePropertyChangedCallback(_owner, (instance, p, e) => UpdateProperties()); }