title: How does ContentPresenter work in UWP?
body: <p>I have a problem getting a simple <code>ContentPresenter</code> to work as I expect.</p>
  
  <p>When I start a new UWP project, change the <code>MainPage</code> content to</p>
  
  <pre><code>&lt;Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"&gt;
      &lt;ContentPresenter Content="{Binding TheContent}" /&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>and set it's code-behind to</p>
  
  <pre><code>public sealed partial class MainPage : Page
  {
      public MainPage()
      {
          this.InitializeComponent();
          this.DataContext = new ViewModel();
      }        
  }
  
  public class ViewModel
  {
      public string TheContent { get { return "Hello World."; } }
  }
  </code></pre>
  
  <p>I expect the <code>ContentPresenter</code> to just create a <code>TextBlock</code> with <code>Text</code> property set to "Hello World". At least it works that way in WPF.</p>
  
  <p>Instead, nothing is shown, and I have a Binding error in the output:</p>
  
  <blockquote>
    <p>Error: BindingExpression path error: 'TheContent' property not found on 'Windows.Foundation.IReference`1'. BindingExpression:
    Path='TheContent' DataItem='Windows.Foundation.IReference`1';
    target element is 'Windows.UI.Xaml.Controls.ContentPresenter'
    (Name='null'); target property is 'Content' (type 'Object')</p>
  </blockquote>
  
  <p>This looks to me, that the <code>ContentPresenter</code> tries to render it's content with the page it is located on?
  When I explicitly set the <code>ContentTemplate</code> to a <code>TextBlock</code>, everything works fine, but using a <code>ContentTemplateSelector</code> that return a <code>DataTemplate</code> based on a <code>TextBlock</code>, I have the same error as before.</p>
  
  <p>What am I missing?</p>