使用WPF控件避免ItemTemplate复制?

时间:2016-06-27 18:33:30

标签: c# wpf xaml

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

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

我目前正在粘贴这个我需要的地方,但我想知道是否有办法避免这种重复:能够做到这样的事情: <TimeSpanComboBox ...></...>或类似的东西?

1 个答案:

答案 0 :(得分:3)

您可以在Application.Resources的某处定义implicit DataTemplate。即。

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

您当然也可以定义密钥并在需要时明确重复使用(例如ItemTemplate="{StaticResource TimeSpanTemplate}")。