Los Setters no se ejecutan en Propiedades de Dependencia?

Solo una breve pregunta para aclarar algunas dudas. ¿Los setters no se ejecutan cuando un elemento está vinculado a una propiedad de dependencia?

public string TextContent { get { return (string)GetValue(TextContentProperty); } set { SetValue(TextContentProperty, value); Debug.WriteLine("Setting value of TextContent: " + value); } } public static readonly DependencyProperty TextContentProperty = DependencyProperty.Register("TextContent", typeof(string), typeof(MarkdownEditor), new UIPropertyMetadata("")); 

  

Como noté, el siguiente en mi setter no funciona

 Debug.WriteLine("Setting value of TextContent: " + value); 

El motor de enlace de WPF llama directamente a GetValue y SetValue (eludiendo los setters de propiedades y getters). Necesita la propiedad para estar allí para que pueda ser compatible con el marcado XAML (y comstackr correctamente).

Para crear una DependencyProperty, agregue un campo estático de tipo DepdencyProperty a su tipo y llame a DependencyProperty.Register () para crear una instancia de una propiedad de dependencia. El nombre de DependendyProperty siempre debe terminar con … Propiedad. Esta es una convención de nombres en WPF.

Para que sea accesible como una propiedad .NET normal, debe agregar un contenedor de propiedades. Este contenedor no hace nada más que obtener internamente y establecer el valor utilizando los métodos GetValue () y SetValue () heredados de DependencyObject y pasando DependencyProperty como clave.

No agregue ninguna lógica a estas propiedades, ya que solo se llaman cuando establece la propiedad desde el código. Si configura la propiedad desde XAML, se llama directamente al método SetValue ().

Cada DependencyProperty proporciona devoluciones de llamada para notificación de cambio, coerción de valor y validación. Estas devoluciones de llamada están registradas en la propiedad de dependencia.

fuente: http://www.wpftutorial.net/DependencyProperties.html