wpf TabHeader中第一个选项卡标题中的图像

wpf TabHeader中第一个选项卡标题中的图像,wpf,mvvm,prism,tabcontrol,tabitem,Wpf,Mvvm,Prism,Tabcontrol,Tabitem,我想在当前完全工作的Prism MVVM WPF应用程序中的TabControl的第一个选项卡标题中显示一个图像 完整描述如下: 当用户从左侧区域的类别列表中选择一个项目时,它会在右侧区域显示“更多详细信息”和“相关产品”。此右侧区域包含UserControl中的TabControl。 第一个选项卡显示“更多类别详细信息”,而第二个选项卡显示“相关产品”。数据显示正确。现在我只想在第一个选项卡标题中显示类别缩略图和类别名称 我尝试在第一个选项卡上使用HeaderTemplate,如下所示 <

我想在当前完全工作的Prism MVVM WPF应用程序中的TabControl的第一个选项卡标题中显示一个图像

完整描述如下:

当用户从左侧区域的类别列表中选择一个项目时,它会在右侧区域显示“更多详细信息”和“相关产品”。此右侧区域包含UserControl中的TabControl。 第一个选项卡显示“更多类别详细信息”,而第二个选项卡显示“相关产品”。数据显示正确。现在我只想在第一个选项卡标题中显示类别缩略图和类别名称

我尝试在第一个选项卡上使用HeaderTemplate,如下所示

<TabControl  VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" >
 <TabItem  Name="tabItemCategoryMoreInfo"  >
  <TabItem.HeaderTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <Image  x:Name="viewImage" Height="20" Width="20" Margin="0,0,2,0" 
                        Source="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl} }, Path=Content.DataContext.SelectedParent.PictureBinary}"/>
        <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem} }, Path=Content.DataContext.SelectedParent.CategoryName}"
                           VerticalAlignment="Center" FontSize="14" FontWeight="SemiBold" />
      </StackPanel>
      <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem} }, Path=Content.DataContext.SelectedParent.PictureBinary}" Value="{x:Null}" >
          <Setter TargetName="viewImage" Property="Source" Value="/CatalogModule;component/Images/ItemIcon.png"  />
        </DataTrigger>
      </DataTemplate.Triggers>
     </DataTemplate>
  </TabItem.HeaderTemplate>

  <ContentControl prism:RegionManager.RegionName="CategoryMoreDetailsRegion" />
 </TabItem>
 <TabItem Header="Products" Name="tabItemCategoryProducts">
  <ContentControl prism:RegionManager.RegionName="CategoryProductsRegion" />
 </TabItem>

它没有显示产品名称或产品图像。但它只显示默认图像,因此触发器看起来工作正常。能不能请一些人帮忙

编辑:

最初,我在图像数据路径中使用TabItem而不是TabControl:

<Image  x:Name="viewImage" Height="20" Width="20" Margin="0,0,2,0" 
                    Source="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem} }, Path=Content.DataContext.SelectedParent.PictureBinary}"/>

数据模板绑定中的
路径
不同。。。这也许可以解释为什么它不起作用。如果我理解正确,您会说
DataTrigger
中的
Binding Path
有效,因此可能需要更改
ImageSource
TextBlock.Text
属性的
Binding Path


最初我用TabItem代替TabControl,我忘了给它定尺寸,它不起作用。对不起,我没有解释清楚。我所说的“dataTrigger正在工作”是因为它无法从数据源中找到正确的图片(因为我的代码不正确),所以它显示了文件夹中的默认图片“ItemIcon.png”。
<DataTemplate>
  <StackPanel Orientation="Horizontal">
    <Image  x:Name="viewImage" Height="20" Width="20" Margin="0,0,2,0" 
                    Source="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabItem}}, Path=Content.DataContext.SelectedParent.PictureBinary}"/>
    <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Content.DataContext.SelectedParent.CategoryName}"
                       VerticalAlignment="Center" FontSize="14" FontWeight="SemiBold" />
  </StackPanel>
  <DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}, Path=Content.DataContext.SelectedParent.PictureBinary}" Value="{x:Null}" >
      <Setter TargetName="viewImage" Property="Source" Value="/CatalogModule;component/Images/ItemIcon.png"  />
    </DataTrigger>
  </DataTemplate.Triggers>
 </DataTemplate>
AncestorType={x:Type TabControl}