title: Why do I need to type ContentControl.Content and not just Content
body: <p>I am watching an online video tutorial about DataTemplates</p>
  
  <p>The demo code is the follows</p>
  
  <p></p>
  
  <pre><code>    &lt;StackPanel.Resources&gt;
          &lt;ControlTemplate x:Key="MyButton"&gt;
              &lt;Grid&gt;
                  &lt;Ellipse Fill="{TemplateBinding Background}" /&gt;
                  &lt;ContentControl Content="{TemplateBinding ContentControl.Content}" /&gt;&lt;!--why this--&gt;
              &lt;/Grid&gt;                
          &lt;/ControlTemplate&gt;
      &lt;/StackPanel.Resources&gt;
  
      &lt;Button Content="Click me" Background="Green" Width="100" Height="50" Template="{StaticResource MyButton}" /&gt;
  &lt;/StackPanel&gt;
  </code></pre>
  
  <p>The bit where I'm lost is </p>
  
  <pre><code>&lt;ContentControl Content="{TemplateBinding ContentControl.Content}" /&gt;
  </code></pre>
  
  <p>Why is it <code>ControlControl.Content</code> and not just <code>Content</code>. If we review the line of code before this it shows <code>Ellipse Fill="{TemplateBinding Background}"</code> and not <code>&lt;Ellipse Fill="{TemplateBinding Ellipse.Background}" /&gt;</code> </p>
  
  <p>Why do we state <code>ContentControl</code>? Is it because the property <code>Content</code> of the <code>Button</code> is actually an object of type <code>ContentControl</code> where as <code>Background</code> is just a string property of <code>Button</code>? </p>