У меня есть класс под названием MyComponent, и он имеет DependencyProperty caled BackgroundProperty.
public class MyComponent
{
public MyBackground Background
{
get { return (MyBackground)GetValue(BackgroundProperty); }
set { SetValue(BackgroundProperty, value); }
}
public static readonly DependencyProperty BackgroundProperty =
DependencyProperty.Register("Background", typeof(MyBackground),
typeof(MyComponent), new FrameworkPropertyMetadata(default(MyBackground), new PropertyChangedCallback(OnPropertyChanged)));
}
MyBackground является классом, который происходит из DependencyObject, и он имеет некоторый DependencyProperties.
public class MyBackground : DependencyObject
{
public Color BaseColor
{
set { SetValue(BaseColorProperty, value); }
get { return (Color)GetValue(BaseColorProperty); }
}
public static readonly DependencyProperty BaseColorProperty =
DependencyProperty.Register("BaseColor", typeof(Color),
typeof(MyBackground ), new UIPropertyMetadata(Colors.White));
[...]
}
Теперь, то, что я хочу, - когда свойство от MyBackground изменяется, MyComponent, который будет уведомлен, что MyBackground изменился и PropertyChangedCallback по имени OnPropertyChanged, который назовут.
Похоже, вы хотите использовать DependencyPropertyDescriptor и AddValueChanged.
Вот статья об этом: http://www.codeproject.com/Articles/34741/Change-Notification-for-Dependency-Properties.aspx
.. и, возможно, лучшая реализация: http://agsmith.wordpress.com/2008/04/07/propertydescriptor-addvaluechanged-alternative/