C# WPF DataContext не устанавливается в ContentTemplate

<UserControl x:Class="TestApp.View.WorkspaceView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         xmlns:view="clr-namespace:TestApp.View"
         d:DesignHeight="450" d:DesignWidth="800">
  <UserControl.Resources>
    <DataTemplate x:Key="MyDataTemplate">
        <view:TestView DataContext="{Binding TestViewModel}"/>
    </DataTemplate>
  </UserControl.Resources>

  <ContentPresenter ContentTemplate="{StaticResource MyDataTemplate}"/>
</UserControl>

TestView ето UserControl, ContentPresenter показывает UserControl но в UserControl DataContext не находит, почему? Задача у меня изменять View в зависимости от типа DataContext


Ответы (1 шт):

Автор решения: aepot

Не знаю, насколько правильно, я с UserControl имею мало опыта, но по-моему так.

<UserControl.Resources>
    <DataTemplate x:Key="MyDataTemplate">
        <view:TestView DataContext="{TemplateBinding DataContext}"/>
    </DataTemplate>
</UserControl.Resources>

А потом при использовании контрола в окне

<view:WorkspaceView DataContext="{Binding TestViewModel}"/>
→ Ссылка