2012-05-16 73 views
1

我向上滾動行顏色時,我有一個WPF(Win7上的4.0)數據網格,當我向下滾動顏色時數據正在移動,數據正在移動。 這是平常嗎?是否有可能擺脫這種奇怪的行爲?WPF Datagrid與AlternatingRowBackground向上滾動和向下滾動時的滾動方式不同

電網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 scrolls up a bit when scrolled to end),但我不知道問題是否連接。

回答

3

EnableRowVirtualization="False"添加到您的數據網格中。

+0

你是對的。如果沒有更好的解決方案,我會採取它(我需要虛擬化來提升性能)。 – IvanH

+0

完全可以理解。我會回頭看看是否有更好的建議。 – obaylis

0

這觸發可與EnableRowVirtualization = 「真」

<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> 

+0

這不適合我。 .NET 4.0 – CrazyIvan1974

+0

對不起,我們有這個代碼在生產環境中工作,目標4.0 – Dave

+0

我會再看一遍。 – CrazyIvan1974