У меня проблема при попытке разместить UserControl в качестве содержимого вкладки в элементе вкладки в TabControl.
Мой код структурирован следующим образом:
У меня есть модель представления, которая должна быть преобразована в представление через шаблон данных.
<DataTemplate x:Key="TabItemContentTemplate" DataType="{x:Type ViewModels:MyViewModel}">
<Views:MyView />
</DataTemplate>
Я хотел бы представить эту точку зрения в
TabControl (на самом деле
XamTabControl, но в любом случае,
проблема остается.)
<UserControl>
<UserControl.Resources>
<DataTemplate x:Key="TabItemHeaderTemplate">
<StackPanel>
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=Description}"/>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="TabItemContentTemplate" DataType="{x:Type ViewModels:MyViewModel}">
<Views:MyView />
</DataTemplate>
<Style x:Key="TabItemContainerStyle" TargetType="Controls:TabItemEx">
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="HeaderTemplate"
Value="{DynamicResource TabItemHeaderTemplate}"/>
<Setter Property="Content" Value="{Binding}"/>
<Setter Property="ContentTemplate"
Value="{DynamicResource TabItemContentTemplate}"/>
</Style>
</UserControl.Resources>
<Grid >
<Controls:XamTabControl
ItemsSource="{Binding Items}"
ItemContainerStyle="{DynamicResource TabItemContainerStyle}"
TabStripPlacement="Left"
TabLayoutStyle="SingleRowAutoSize"
AllowTabClosing="True"
Grid.Row="1"
TabItemCloseButtonVisibility="WhenSelectedOrHotTracked">
</Controls:XamTabControl>
</Grid>
</UserControl>
Проблема в том, что контент не отображается. Заголовок вкладки отображается нормально, однако на вкладках нет содержимого.
Я вполне уверен, что проблема заключается в отображении View / Viewmodel, так как, когда я изменяю шаблоны на следующие, я получаю контент отображаемым:
<DataTemplate x:Key="TabItemHeaderTemplate">
<Grid>
<TextBlock Text="{Binding Header}"/>
<Ellipse Fill="Red" Width="40" Height="40" Margin="0,20,0,0"/>
</Grid>
</DataTemplate>
<DataTemplate x:Key="TabItemContentTemplate">
<Ellipse Fill="Green"/>
</DataTemplate>
<Style x:Key="TabItemContainerStyle" TargetType="Controls:TabItemEx">
<Setter Property="Header" Value="{Binding}"/>
<Setter Property="HeaderTemplate"
Value="{StaticResource TabItemHeaderTemplate}"/>
<Setter Property="Content" Value="{Binding}"/>
<Setter Property="ContentTemplate"
Value="{StaticResource TabItemContentTemplate}"/>
</Style>
Кто-нибудь имеет представление о том, что я здесь делаю неправильно?
спасибо заранее!