Изменить HorizontalGridLinesBrush только для выбранной строки

1

В WPF "DataGrid" цвет горизонтальной сетки может быть изменен с помощью свойства HorizontalGridLinesBrush.

Некоторые элементы имеют логическое свойство, установленное в true, поэтому я хочу выделить их с помощью кисти горизонтальной сетки, установленной на другой цвет.

Можно ли изменить цвет горизонтальной линии сетки только для рядов цетаина?

Теги:
wpf
datagrid
gridlines

1 ответ

2
Лучший ответ

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>
  • 1
    Спасибо, что решили мою проблему! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню