仅为选定的行更改Horizo​​ntalGridLinesBrush

时间:2014-11-14 13:55:55

标签: c# wpf datagrid gridlines

在WPF'DataGrid'中,HorizontalGridLinesBrush属性可以修改水平网格线的颜色。

某些项目的布尔属性设置为true,因此我希望突出显示它们,并将水平网格线笔刷设置为另一种颜色。

是否可以仅针对cetain Rows更改水平网格线的颜色?

1 个答案:

答案 0 :(得分:3)

DataGrid.HorizontalGridLinesBrush是按DataGrid设置的,因此您无法每行更改它,但您可以通过禁用水平网格线并创建自定义DataGridRow样式来替换默认水平线行为

<DataGrid ... GridLinesVisibility="Vertical">
    <DataGrid.RowStyle>
        <Style TargetType="{x:Type DataGridRow}">
            <Setter Property="BorderThickness" Value="0,0,0,1"/>
            <Setter Property="BorderBrush" Value="Black"/>
            <Style.Triggers>

                <!-- this will trigger when row is selected -->
                <Trigger Property="IsSelected" Value="True">                        
                    <Setter Property="BorderBrush" Value="Red"/>
                </Trigger>

                <!-- this will trigger when Highlight property of the view model is true -->
                <DataTrigger Binding="{Binding Highlight}" Value="True">
                    <Setter Property="BorderBrush" Value="Green"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>