title: Why can't WPF bind to UserControl properties?
body: <pre><code>public class Meh : DependencyObject
  {
      public static readonly DependencyProperty MyPropertyProperty =
          DependencyProperty.Register("MyProperty", typeof(string), typeof(Meh));
  
      public string MyProperty
      {
          get { return (string)GetValue(MyPropertyProperty); }
          set { SetValue(MyPropertyProperty, value); }
      }
  }
  </code></pre>
  
  <p>Now I databind that to a tab control using the following code</p>
  
  <pre><code>public partial class Window1 : Window
  {
      public Window1()
      {
          InitializeComponent();
          var data = new List&lt;Meh&gt;();
          data.Add(new Meh { MyProperty = "One" });
          data.Add(new Meh { MyProperty = "Two" });
          TabControlViews.ItemsSource = data;
      }
  }
  </code></pre>
  
  <p>The XAML for the tab control looks like this</p>
  
  <pre><code>&lt;TabControl Name="TabControlViews"&gt;
      &lt;TabControl.ItemTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;TextBlock Text="{Binding MyProperty}"/&gt;
          &lt;/DataTemplate&gt;
      &lt;/TabControl.ItemTemplate&gt;
  &lt;/TabControl&gt;
  </code></pre>
  
  <p>This works fine and the tabs "One", "Two" appear on the tab control.  However if I change the base type of Meh from DependencyObject to UserControl the tabs are blank.  Why is this?</p>