2

行の色を上にスクロールすると、AlternatingRowBackground を使用した WPF (Win7 の 4.0) データグリッドがあり、下にスクロールするとデータが移動します。色はデータと共に移動します。普通ですか?この奇妙な動作を取り除くことは可能ですか?

グリッド XAML:

<DataGrid AutoGenerateColumns="True"
                      CanUserAddRows="False"
                      Grid.Row="0" Grid.Column="0"  Name="grdData" 
                      ItemsSource="{Binding Path=.}" SelectionMode="Single"
                      HeadersVisibility="All" 
                      AlternatingRowBackground="LightGray" 
                      />

注:スクロールについて他に質問があります(最後までスクロールすると、WPF Datagridが少し上にスクロールします)が、問題が関連しているかどうかはわかりません。

4

2 に答える 2

6

データグリッドに追加EnableRowVirtualization="False"します。

于 2012-05-16T11:29:35.263 に答える
-1

このトリガーは、EnableRowVirtualization="True"で機能します

<DataGrid Name="dg" Style="{DynamicResource estiloDG}" MinRowHeight="40" GridLinesVisibility="None" 
          HorizontalGridLinesBrush="LightGray" VerticalGridLinesBrush="LightGray"
          BorderBrush="Gray" BorderThickness="1" Foreground="#424242"
          VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" 
          ItemsSource="{Binding ElementName=Me, Path=ItemsSource, Mode=OneWay}" x:FieldModifier="Private" 
          EnableRowVirtualization="True"
          VirtualizingStackPanel.IsVirtualizing="True"
          VirtualizingStackPanel.VirtualizationMode="Recycling"
          CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="True" CanUserSortColumns="True">

    <DataGrid.RowStyle>
        <Style TargetType="{x:Type DataGridRow}">
            <Style.Triggers>
                <Trigger Property="AlternationIndex" Value="0">
                    <Setter Property="Background" Value="White" />
                </Trigger>
                <Trigger Property="AlternationIndex" Value="1">
                    <Setter Property="Background" Value="#FFD0E8D0" />
                </Trigger>                  
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>

<DataGrid.Resources>  
    <Style x:Key="estiloDG" TargetType="{x:Type DataGrid}">
        <Setter Property="BorderBrush" Value="White"/>
        <Setter Property="Background" Value="White" />
        <Setter Property="MinHeight" Value="30" />
        <Setter Property="ColumnHeaderHeight" Value="30" />
        <Setter Property="HeadersVisibility" Value="All" />
        <Setter Property="RowBackground" Value="{StaticResource RowBackgroundBrush}" />
        <Setter Property="AlternationCount" Value="2" />
        <Setter Property="HorizontalGridLinesBrush" Value="{StaticResource DataGridHorizontalLinesBrush}" />
        <Setter Property="VerticalGridLinesBrush" Value="{StaticResource DataGridHorizontalLinesBrush}" />
        <Setter Property="CellStyle" Value="{StaticResource DataGridCellStyle}" />
        <Setter Property="RowValidationErrorTemplate" Value="{StaticResource ErrorTemplate2}" />
        <Setter Property="ColumnHeaderStyle" Value="{StaticResource DatagridColumnHeaderCustomTemplateStyle}" />      
    </Style>
</DataGrid.Resources>

于 2015-01-14T07:59:59.173 に答える