Могу ли я добавить существующий шаблон данных в ресурсы элемента управления? - PullRequest
1 голос
/ 30 августа 2011

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

<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>

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

<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>

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

Примерно так:

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

Редактировать: Протестировано, и похоже, что оно работает.

0 голосов
/ 30 августа 2011

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

  • извлекает все элементы, которые вы установили в TextBox, в стиль, который вы затем можете применять в обеих ситуациях
  • определить сам текстовый блок как ресурс и ссылаться на него в двух шаблонах
...