DependencyObject
не реализует INotifyPropertyChanged
, поэтому, если вы выберете этот маршрут, вам придется реализовать отправку событий PropertyChanged вручную.
К счастью, DependencyObject
имеет метод OnPropertyChanged
, поэтому реализация INotifyPropertyChanged
в вашем классе DependencyObject
является тривиальной, например:
public class MyClass : HeaderedContentControl, INotifyPropertyChanged
{
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
var handler = PropertyChanged;
if(handler!=null) handler(this, new PropertyChangedEventArgs(e.Property.Name));
base.OnPropertyChanged(e);
}
public event PropertyChangedEventHandler PropertyChanged;
}
Я хотел бы повторить мысль Джисмита о том, что привязка напрямую к свойству UserControl может быть не лучшим путем. В большинстве случаев MVVM - лучший путь. Конечно, есть исключения.