How does ContentPresenter work in UWP?
<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>