I'm trying to wrap my head around the difference between when PropertyChangedCallback is called and when CoerceValueCallback is called when setting up Dependency/Attached properties in WPF.
For example,
public static readonly DependencyProperty ValueProperty = DependencyProperty.RegisterAttached(
"Value",
typeof(TProperty),
typeof(BaseAttachedProperty<TParent, TProperty>),
new PropertyMetadata(default(TProperty),
new PropertyChangedCallback(PropertyChanged),
new CoerceValueCallback(CoerceCallback)));
if I have a dependency property called ValueProperty, which has a delegate PropertyChanged for PropertyChangedCallback, and delegate CoerceCallback for CoerceValueCallback, when are they called?