重用数据模板

Reusing DataTemplates

我的 UI 中有一些 GroupBox,我正在修改它们的 HeaderTemplate 以在文本标题之外添加图标。这是我的模板:

<DataTemplate>
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image Source="/Resources/IDCard.png" />
    <TextBlock Grid.Column="1" Text="{Binding}" VerticalAlignment="Center" />
  </Grid>
</DataTemplate>

这行得通,但是因为我有多个 GroupBoxes,所以我在想办法在 WindowResources 中定义这个模板,然后在每个模板中引用它GroupBox。我如何使用 ContentPresenter(或其他任何与此相关的内容)代替上述模板中的 <Image> 控件,然后分别在每个 GroupBox 中提供实际内容(图标)?

注意:我正在寻找 XAML-only 解决方案。

您可以尝试使用 DynamicResource 查找(按照 this example 行)。