В настоящее время у меня есть шаблон данных, который я применяю к ячейкам, чтобы придать им определенный стиль:

<DataTemplate x:Key="percentageCellContentTemplate4">
    <TextBlock  VerticalAlignment="Center" Height="17" TextAlignment="Right" Margin="-1,-1,-1,-1" Background="White" Text="{Binding Converter={StaticResource PercentScale4}, ConverterParameter=' \{0:P\}'}" ToolTip="{Binding}"/>
</DataTemplate>

Теперь у меня есть случай, когда мне нужно добавить это как типизированный шаблон в ресурсы datagrid. В настоящее время это работает:

<xcdg:DataGridControl.Resources>
     <ResourceDictionary>
          <DataTemplate DataType="{x:Type s:Decimal}">
              <!-- This is exactly percentageCellContentTemplate4 - if someone can find a way to inherit this dataTemplate, free poutine. -->
              <TextBlock  VerticalAlignment="Center" Height="17" TextAlignment="Right" Margin="-1,-1,-1,-1" Background="White" Text="{Binding Converter={StaticResource PercentScale4}, ConverterParameter=' \{0:P\}'}" ToolTip="{Binding}"/>
          </DataTemplate>
     </ResourceDictionary>
</xcdg:DataGridControl.Resources>

Может ли кто-нибудь придумать способ избежать копирования и вставки одного и того же шаблона здесь и подобных мест, где он мне нужен?

Благодарность

1
Alain 30 Авг 2011 в 17:18

2 ответа

Лучший ответ

Как насчет чего-то вроде этого:

<DataTemplate DataType="{x:Type s:Decimal}">
    <ContentPresenter ContentTemplate="{StaticResource percentageCellContentTemplate4}" />
</DataTemplate>

Изменить: Протестировал, и вроде работает.

3
H.B. 30 Авг 2011 в 13:48

Хотя я думаю, что ответ H.B. должен сработать, на ум приходят две другие возможности (прямо сейчас у меня нет WPF), которые могут сработать:

  • извлеките все вещи, которые вы установили в TextBox, в стиль, который затем можно применить в обеих ситуациях
  • определить сам текстовый блок как ресурс и сослаться на него в двух шаблонах
0
flq 30 Авг 2011 в 13:43