title: WPF - property change notification from UserControl
body: <p>I have two UserControls (uc1 and uc2) loading into a third UserControl (shell). Shell has two properties, uc1 and uc2, of type UserControl1 and UserControl2, and each have a DependencyProperty registered to their own classes called IsDirty:</p>
  
  <pre><code>public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register("IsDirty", typeof (bool), typeof (UserControl1));
  public bool IsDirty
  {
      get { return (bool) GetValue(IsDirtyProperty); }
      set { SetValue(IsDirtyProperty, value); }
  }
  </code></pre>
  
  <p>(same code for UserControl2)</p>
  
  <p><em>Shell</em> has TextBlocks bound to the IsDirty properties:</p>
  
  <pre><code>&lt;TextBlock Text="{Binding ElementName=shell, Path=Uc1.IsDirty}"/&gt;
  &lt;TextBlock Text="{Binding ElementName=shell, Path=Uc2.IsDirty}"/&gt;
  </code></pre>
  
  <p>When I change the values of IsDirty in uc1 and uc2, Shell never gets notified. What am I missing? UserControl is descendant of DependencyObject...</p>
  
  <p>The same behavior occurs if I have regular properties notifying changes via INotifyPropertyChanged.</p>
  
  <p>If I raise a routed event from uc1 and uc2, bubbling up to Shell, then I can catch the Dirty value and everything works, but I shouldn't have to do that, should I?</p>
  
  <p>Thanks</p>
  
  <p>Edit: The answer is to raise property changed event on the Uc1 and Uc2 properties or make them DPs.</p>