4

我正在创建一个带有 AlternatingRowBackground 属性的行的 DataGrid。但是,必须修改行中的数据,这需要一些时间。

我正在尝试使行的背景颜色在初始化时显示为浅灰色。这是我在 RowTemplate 中所做的:

<ControlTemplate.Triggers>
    <DataTrigger Binding="{Binding Initialized}" Value="False">
        <Setter Property="Background" Value="LightGray"/>
    </DataTrigger>
</ControlTemplate.Triggers>

但这不适用于仍具有 AlternatingRowBackground 中指定颜色的奇数行。

如何覆盖它,使所有未初始化的行都显示为浅灰色?

4

1 回答 1

7

我遇到了同样的问题,接下来为我工作:在样式中设置 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>
于 2012-08-20T05:30:29.810 回答