Я использую WPF DataGrid, где для одного из столбцов требуется указывать гиперссылку «Редактировать», если строка является редактируемой - это обозначается логическим флагом в модели поддержки строки. Мне удалось добиться этого с помощью DataGridTemplateColumn - никаких проблем. Однако дополнительное требование для всей строки не должно отображать какие-либо выделения при выборе строки (по умолчанию это синий фон). Мне удалось добиться этого в других столбцах, определив стиль DataGridCell с прозрачным фоном, например
<DataGridTextColumn
Header="Id"
Binding="{Binding Path=Id}"
HeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
CellStyle="{StaticResource DataGridCellStyle}" />
где DataGridCellStyle определяется следующим образом:
<Style x:Key="DataGridCellStyle" TargetType="{x:Type DataGridCell}">
<Setter Property="Background" Value="Transparent" />
...
</Style>
Однако рассматриваемый столбец, DataGridTemplateColumn, не предлагает атрибут «CellStyle», который я могу использовать для отключения подсветки выделения. Итак, мой вопрос, как установить стиль ячейки при использовании DataGridTemplateColumn? Вот моя реализация столбца, который удовлетворяет первому требованию (то есть показывает гиперссылку «Редактировать», если строка редактируема):
<DataGridTemplateColumn
Header="Actions"
HeaderStyle="{StaticResource CenterAlignedColumnHeaderStyle}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Visibility="{Binding Path=Editable, Converter={StaticResource convVisibility}}"
Style="{StaticResource CenterAlignedElementStyle}">
<Hyperlink
Command="..."
CommandParameter="{Binding}">
<TextBlock Text="Edit" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Спасибо.