我正在创建一个带有AlternatingRowBackground属性的行的DataGrid。但是,必须修改行中的数据,这需要一些时间。
我试图使行的背景色在初始化时显示为浅灰色。这是我在RowTemplate中所做的事情:
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding Initialized}" Value="False">
<Setter Property="Background" Value="LightGray"/>
</DataTrigger>
</ControlTemplate.Triggers>
但这对于仍然具有AlternatingRowBackground中指定的颜色的奇数行不起作用。
我该如何覆盖它,以便所有未初始化的行都显示为浅灰色?
最佳答案
我遇到了同样的问题,接下来为我工作:
在样式中设置AlternatingRowBackground,但不要在DataGrid中设置。
<Grid.Resources>
<Style x:Key="dg" TargetType="DataGrid">
<Setter Property="AlternatingRowBackground" Value="Orange"/>
<Setter Property="AutoGenerateColumns" Value="False"/>
</Style>
</Grid.Resources>
<DataGrid ItemsSource="{Binding Source={StaticResource one}, Path=Persons}" Style="{StaticResource dg}">
<DataGrid.Columns>
<DataGridTextColumn Width="*" Header="Name" Binding="{Binding Path=Name}"/>
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Mature}" Value="True">
<Setter Property="Background" Value="LightGray"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
关于c# - 如何覆盖DataGridRow模板中的AlternatingRowBackground?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12022343/