Я использую DataGrid WPF, где у одного из столбцов есть требование, чтобы показать гиперссылку «Редактировать», если строка доступна для редактирования - это обозначается логическим буфером в модели подстановки для строки. Я смог достичь этого с помощью DataGridTemplateColumn - никаких проблем. Однако дополнительное требование во всей строке не должно показывать никаких бликов при выборе строки (по умолчанию это синий фон). Я смог добиться этого на других столбцах, определив стиль DataGridCell с прозрачным фоном, например.Укладка столбцов на основе DataGridTemplateColumn в WPF DataGrid
<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? Вот моя реализация колонны, которая удовлетворяет первое требование (то есть показывающая «Edit» гиперссылка, если строка редактируется):
<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>
Спасибо.
Вот это - это работает! Большое спасибо Даниилу. – Naresh