title: Switching content presenter on property, passing full data context to children?
body: <p>I have the following view.</p>
  
  <pre><code>&lt;Window.Resources&gt;
     &lt;DataTemplate DataType="{x:Type search:SomeChildType1Vm}"&gt;
        &lt;a:SomeParentType1 DataContext="{Binding}" /&gt;
     &lt;/DataTemplate&gt;
  
     &lt;DataTemplate DataType="{x:Type search:SomeChildType2Vm}"&gt;
        &lt;a:SomeParentType2 DataContext="{Binding}" /&gt;
     &lt;/DataTemplate&gt;
  &lt;/Window.Resources&gt;
  &lt;Grid&gt;
     &lt;Grid.RowDefinitions&gt;
        &lt;RowDefinition Height="*" /&gt;
     &lt;/Grid.RowDefinitions&gt;
     &lt;Grid.ColumnDefinitions&gt;
        &lt;ColumnDefinition Width="*" /&gt;
     &lt;/Grid.ColumnDefinitions&gt;
  
     &lt;ContentPresenter x:Name="ContentPresenter" Content="{Binding SomeChildTypeProperty}" /&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>My datacontext for the view is a class like the following:</p>
  
  <pre><code>public class MySpecialVm
  {
      public SomeChildType SomeChildTypeProperty {get;set;}
  }
  
  public class SomeChildType1 : SomeChildType
  {
  ...
  }
  
  public class SomeChildType2 : SomeChildType
  {
  ...
  }
  
  public class SomeChildType
  {
  ...
  }
  </code></pre>
  
  <p>I'd like to have the type of the SomeChildTypeProperty property control which control is displayed by the content presenter.</p>
  
  <p>Is this possible? In the current format, the datacontext which gets passed to the controls is always of SomeChildType1 or SomeChildType2, which is not ideal as you can imagine. :)</p>