C# WPF Потеря DataContexta
Есть Контекст-элемента списка с такими полями
public Dictionary<int,string> OrderTypes
{
get => _orders;
set => SetPropertyValue(ref _orders, value);
}
/// <summary>
/// Тип приказа
/// </summary>
public int OrderType
{
get => _orderType;
set => SetPropertyValue(ref _orderType, value);
}
Есть главный контекст с полем
public ObservableCollection<RoadOrder> RoadOrders
{
get => _roadOrders;
set => SetPropertyValue(ref _roadOrders, value);
}
И есть такой элемент вёрстки
<ItemsControl
ItemsSource="{Binding DataContext.RoadOrders, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type GroupBox}}}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<ContentControl>
<ContentControl.Style>
<Style TargetType="ContentControl">
<Setter Property="ContentTemplate" Value="{x:Null}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding OrderType}" Value="1">
<Setter Property="ContentTemplate" Value="{StaticResource Order1}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderType}" Value="2">
<Setter Property="ContentTemplate" Value="{StaticResource Order2}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderType}" Value="3">
<Setter Property="ContentTemplate" Value="{StaticResource Order3}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderType}" Value="4">
<Setter Property="ContentTemplate" Value="{StaticResource Order4}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderType}" Value="5">
<Setter Property="ContentTemplate" Value="{StaticResource Order5}"/>
</DataTrigger>
<DataTrigger Binding="{Binding OrderType}" Value="6">
<Setter Property="ContentTemplate" Value="{StaticResource Order6}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Пример одного из OrderTemplate-ов
<DataTemplate x:Key="Order1">
<Grid DataContext="{Binding DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Grid}}}">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<StackPanel HorizontalAlignment="Left" Grid.ColumnSpan="3" MinWidth="400" Margin="30 10 0 0" >
<TextBlock Text="Тип приказа"/>
<ComboBox
ItemsSource="{Binding OrderTypes}"
SelectedValue="{Binding OrderType}"
SelectedValuePath="Key"
DisplayMemberPath="Value"
/>
<TextBlock Text="ФИО"/>
<TextBox Text="{Binding RequesterFIO}"/>
<TextBlock Text="Должность ДСП/ДНЦ"/>
<TextBox Text="{Binding RequestrerPosition}"/>
<TextBlock Text="Номер приказа"/>
<TextBox Text="{Binding OrderNumber}"/>
</StackPanel>
<StackPanel Grid.Column="3" Grid.ColumnSpan="2" Margin="0 10 30 10 " >
<TextBlock Text="Дата"/>
<TextBox Text="{Binding OrderDate, StringFormat=dd.MM.yyyy}"/>
<TextBlock Text="Время"/>
<TextBox Text="{Binding OrderTime ,StringFormat=HH.mm}"/>
<TextBlock Text="Литер светофора"/>
<TextBox Text="{Binding LightLiter }"/>
<TextBlock Text="Номер пути"/>
<TextBox Text="{Binding RoadNumber}"/>
</StackPanel>
</Grid>
</DataTemplate>
В OrderTemplate лежат просто TextBox-ы, прибинженные к текущему объекту из Списка RoadOrders, собственно проблема заключается в том, что при изменении OrderType через ComboBox, теряется ссылка на DataContex внутри OrderTeplate, т.е OrderTemplate не знает с каким элементом ему работать. Как это можно исправить?