Los muchos enlaces listados deben darle una buena idea de lo que las propiedades de dependencia son, pero en general, la forma más fácil pensar en ellos creo que es la siguiente:
Las propiedades de dependencia son lo que usted necesita utilizar para propiedades de los elementos de la interfaz de usuario, si desea poder enlazarlos utilizando el enlace de datos de WPF. Para ser el "Objetivo" de una operación de enlace de datos, deberá convertir la propiedad en Propiedad de Dependencia.
Cuando implemente una clase estándar (que se convierte en el DataContext de un "control"), querrá usar INotifyPropertyChanged en lugar de DPs. Esto permite que esa clase sea una "Fuente" vinculante.
En general, solo querrá hacer Propiedades de dependencia si está haciendo algo que estará vinculado en XAML, como el Target
de un elemento de UIelement. Por ejemplo, digamos que tenemos XAML como esto:
<local:MyControl ControlProperty="{Binding SomeProperty}" />
Normalmente, ControlProperty
habrá una Dep. Propiedad, ya que es el destino vinculante, y SomeProperty será una propiedad CLR estándar (no un DP), en una clase que implemente INotifyPropertyChanged.
Duplicado parcial: http://stackoverflow.com/questions/2505234/need-a-short-and-clear-definition-for-dependency-properties – itowlson