title: When is the PropertyChangedCallback fired
body: <p>I have trouble understanding a problem that occured to me.</p>
  
  <p>I Have a UserControl that is structured somwhat like this.</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class SomePage : Page
  {
      public static readonly DependencyProperty SomePropertyProperty = 
          DependencyProperty.Register("SomeProperty", typeof(IPropertyValue), typeof(SomeControl), new PropertyMetadata(null, new PropertyChangedCallback(OnSomePropertyChanged)));
  
      private static void OnSomePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
      {
          //Do Some Stuff
      }
  }
  </code></pre>
  
  <p>And a ViewModel that looks like this </p>
  
  <pre class="lang-cs prettyprint-override"><code>public class SomeViewModel : BindableBase
  {
      private IPropertyValue _prop;
      public IPropertyValue Property
      {
          get 
          {
              if (_prop== null)
                  _prop = new SomeConcreteValue();
              return _prop;
          }
      }
  }
  </code></pre>
  
  <p>And the whole Stuff is bound to a Page</p>
  
  <pre class="lang-xml prettyprint-override"><code>&lt;common:LayoutAwarePage&gt;
      &lt;Page.DataContext&gt;
          &lt;vm:SomeViewModel /&gt;
      &lt;/Page.DataContext&gt;
      &lt;ctrl:SomePage SomeProperty="{Binding Property}" /&gt;
  &lt;/common:LayoutAwarePage&gt;
  </code></pre>
  
  <p>In my understanding the PropertyChangedCallbacked is called whenever the Value of the DependencyProperty changes.</p>
  
  <p>Allthough the value of ViewModel.Property does never change, the value of the DependencyProperty "SomeProperty" still does, as it changes from null to the inital bound value. </p>
  
  <p>Is there any other possibility to get notified once the Property is initialized or am I simply missing something here?</p>
  
  <p><strong>Edit</strong>:
  Maybe I was not clear about this. My problem is that the PropertyCahngedCallback is not fired when the initial value is set to SomeProperty.</p>