我想根据dataTrigger更改AlternatingRowBackground颜色。 我从IDE收到一个错误,它不会构建(参见下面的xaml)。
错误:在“System.Windows.Controls.DataGridRow”类型上找不到样式属性“AlternatingRowBackground”
的Xaml
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="AlternatingRowBackground" Value="Beige" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource SelectedRowBackgroundBrush}" />
</Trigger>
<DataTrigger Binding="{Binding BondType}" Value="P">
<Setter Property="Background" Value="Pink"/>
<Setter Property="AlternatingRowBackground" Value="LightPink" />
</DataTrigger>
</Style.Triggers>
</Style>
任何想法都会受到赞赏。
答案 0 :(得分:3)
您的样式定位于 DataGridRow ,但“AlternatingRowBackground”是 DataGrid 的属性。
因此,您需要为DataGrid和DataGridRow提供单独的样式。在DataGrid样式中设置AlternatingRowBackground:
<Style x:Key="DataGridStyle" TargetType="{x:Type DataGrid}">
<Setter Property="AlternatingRowBackground" Value="Beige" />
...
</Style>
<Style x:Key="DataGridDemoRowStyle" TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource SelectedRowBackgroundBrush}" />
</Trigger>
<DataTrigger Binding="{Binding BondType}" Value="P">
<Setter Property="Background" Value="Pink"/>
</DataTrigger>
</Style.Triggers>
</Style>