在WPF DataGrid中,基于DataGridTemplateColumn设置列样式

3

我正在使用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>

感谢您的选择。
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接