In WPF il valore di una dependency property può essere determinato da diversi fattori,ad esempio potrebbe essere impostato via stile, databinding oppure modificato attaraverso il meccanismo di Coercing che le dependency property offrono.
Sta di fatto che a volte una proprietà non ha il valore che ci aspettavamo ed è difficile capire chi la sta controllando. La classe DependencyPropertyHelper ci da una mano. smile_regular 

   1:  ValueSource vs=DependencyPropertyHelper.GetValueSource(txtQuantity, TextBox.TextProperty);

In questo caso ValueSource conterrà una serie di informazioni utili tipo: IsAnimated,IsCoerced e IsExpression,mentre analizzando l'enumerato esposto da BaseValueSource otterremo l'informazione di chi sta impostando attualmente quella proprietà.

   1:    // Summary:
   2:    //     Identifies the property system source of a particular dependency property
   3:    //     value.
   4:    public enum BaseValueSource
   5:    {
   6:     Unknown = 0,
   7:     Default = 1,
   8:     Inherited = 2,
   9:     DefaultStyle = 3,
  10:     DefaultStyleTrigger = 4,
  11:     Style = 5,
  12:     TemplateTrigger = 6,
  13:     StyleTrigger = 7,
  14:     ImplicitStyleReference = 8,
  15:     ParentTemplate = 9,
  16:     ParentTemplateTrigger = 10,
  17:     Local = 11,
  18:    }