Как добавить несколько изменений в DataGridTextColumn со стилем, используя XAML в приложении WPF? - PullRequest
0 голосов
/ 13 января 2019

Добавление нескольких изменений в ячейку в DataGrid.

У меня есть DataGrid и я хочу добавить стиль только к одному столбцу. Мне удалось изменить цвет фона моей ячейки:

<DataGrid.Resources>
       <SolidColorBrush x:Key="backColour" Color="#E9E9E9" />
</DataGrid.Resources>


<DataGrid.Columns>
        <DataGridTextColumn Header="Str" Binding="{Binding Str}">                                    
                 <DataGridTextColumn.CellStyle>
                      <Style TargetType="DataGridCell">
         <Setter Property="Background" Value="{StaticResource backColour}"/>
                      </Style>
                  </DataGridTextColumn.CellStyle>
        </DataGridTextColumn>
</DataGrid.Columns>

Когда строка выделена, текст становится белым, но я хочу добавить, что если выбран, текст становится черным. Как я могу добавить это дополнительное изменение? Я нашел, как сделать его черным ( Установка цвета текста для строки WPF DataGrid, когда выбрана строка ), но не знаю, как подключить его, изменив фон в том же стиле.

1 Ответ

0 голосов
/ 14 января 2019

Вы можете добавить триггер по указанной вами ссылке к определенному вами Style:

<DataGridTextColumn.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="Background" Value="{StaticResource backColour}"/>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Foreground" Value="Black"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</DataGridTextColumn.CellStyle>

Но, учитывая, что Foreground также является черным, когда строка не выбрана, вы можете просто сделать Foreground всегда черным:

<DataGridTextColumn.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="Background" Value="{StaticResource backColour}"/>
        <Setter Property="Foreground" Value="Black" />
    </Style>
</DataGridTextColumn.CellStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...