我目前正在研究TabControl的应用程序,并且每个选项卡都有一个从ITabViewModel
继承的ViewModel,它有两个属性:HeaderText
和HeaderImage
。我想从每个ViewModel设置这些。因此,我试图使用HeaderTemplate
风格,但这不起作用。任何人都可以告诉我如何才能使这个工作?C#WPF MVVM TabItem HeaderTemplate不起作用?
<TabControl>
<TabControl.Resources>
<Style TargetType="TabItem" BasedOn="{StaticResource {x:Type TabItem}}">
<Setter Property="HeaderTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding HeaderImage}" Height="20" Margin="5, 0"/>
<TextBlock Text="{Binding HeaderText}"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</TabControl.Resources>
<TabItem DataContext="{Binding ViewModelStart}">
</TabItem>
<TabItem DataContext="{Binding ViewModelStartupManager}">
</TabItem>
</TabControl>
我想最初做第二个选项,但是除了头部之外,我会如何添加内容?每个标签中都有很多复杂的元素。我还有一个DockPanel,它在每个选项卡中充当辅助标题,并具有与标题(图像和文本)相同的属性,以及其他一些看起来不错的属性。 – Aleksbgbg