使用WPF控件避免ItemTemplate重复

本文关键字:ItemTemplate 重复 WPF 控件 使用 | 更新日期: 2023-09-27 17:51:19

我有需要使用转换器的组合框:

<ComboBox>
  <ComboBox.ItemTemplate>
    <DataTemplate>
      <ContentPresenter
            Content="{Binding Converter={StaticResource TimespanConverter}}"/>
    </DataTemplate>
  </ComboBox.ItemTemplate>
</ComboBox>

我目前粘贴这个无处不在,我需要它,但我想知道是否有一种方法来避免这种重复:能够做这样的事情:<TimeSpanComboBox ...></...>或者类似的?

使用WPF控件避免ItemTemplate重复

您可以在Application.Resources的某个地方定义隐式DataTemplate。例如

<DataTemplate DataType="{x:Type sys:TimeSpan}">
  <ContentPresenter
        Content="{Binding Converter={StaticResource TimespanConverter}}"/>
</DataTemplate>

您当然也可以定义一个键并在需要时显式地重用它(例如ItemTemplate="{StaticResource TimeSpanTemplate}")。