Ich hatte dieses Problem und ich riss mir fast die Haare aus, und ich konnte nicht die passende Antwort im Netz finden. Ich habe versucht, die Hintergrundfarbe der ausgewählten Zeile in einem WPF DataGrid zu steuern. Es würde es einfach nicht tun. In meinem Fall war der Grund, dass ich auch einen CellStyle in meinem Datagrid hatte und der CellStyle den RowStyle überschrieb, den ich einstellte. Interessanterweise, weil der CellStyle nicht einmal die Hintergrundfarbe einstellte, die stattdessen von den Eigenschaften RowBackground und AlternateRowBackground gesetzt wurde. Dennoch versucht, die Hintergrundfarbe der ausgewählten Zeile zu setzen überhaupt nicht funktionieren, wenn ich dies tat:
<DataGrid ... >
<DataGrid.RowBackground>
...
</DataGrid.RowBackground>
<DataGrid.AlternatingRowBackground>
...
</DataGrid.AlternatingRowBackground>
<DataGrid.RowStyle>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Pink"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground" Value="{Binding MyProperty}" />
</Style>
</DataGrid.CellStyle>
und es hat funktioniert, wenn ich den gewünschten Stil für die ausgewählte Zeile aus der Reihe Stil bewegt und in der Zellenstil, wie folgt:
<DataGrid ... >
<DataGrid.RowBackground>
...
</DataGrid.RowBackground>
<DataGrid.AlternatingRowBackground>
...
</DataGrid.AlternatingRowBackground>
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground" Value="{Binding MyProperty}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Pink"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
Einfach dieses, wenn jemand das gleiche Problem hat.
Wenn Sie sagen, ‚das versucht, "Du meinst du hast es versucht und es hat nicht funktioniert? –
Ja, das ist es, was es bedeutet @ColonPanic – Kalanamith