2011-09-06 5 views
6

que tiene una cuadrícula de datos se define de la siguiente manera, como parte de un control de usuario:Adición de un evento de desplazamiento a la cuadrícula de datos

<DataGrid x:Name="dtGrid" AutoGenerateColumns="False" 
      VirtualizingStackPanel.IsVirtualizing="True"          
      VirtualizingStackPanel.VirtualizationMode ="Standard" 
       EnableColumnVirtualization="True" 
       EnableRowVirtualization="True" 
      ScrollViewer.IsDeferredScrollingEnabled="True" 
      CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserSortColumns="True" 
      ItemsSource ="{Binding}" Block.TextAlignment="Center" 
      AlternatingRowBackground="#F1F1F1" RowBackground="White" 
       CanUserAddRows="False" CanUserDeleteRows="False" FrozenColumnCount="1" 
       GridLinesVisibility="None" > 
    </DataGrid> 

me gustaría añadir un evento cuando el usuario arrastra horizontalmente en la cuadrícula de datos, se actualiza otra tabla que tengo. ¿Puede alguien señalarme en la dirección para comenzar esto? Gracias.

+0

¿Qué quiere decir por 'arrastra horizontalmente'? ¿Te refieres a desplazarse horizontalmente? –

Respuesta

16

Si entiendo su pregunta correctamente, quiere saber cuándo el usuario ha desplazado el DataGrid horizontalmente. Esto se puede hacer con el evento adjunto ScrollViewer.ScrollChanged.

Xaml Código

<DataGrid x:Name="dtGrid" 
      ScrollViewer.ScrollChanged="dtGrid_ScrollChanged" 
      ... /> 

detrás

private void dtGrid_ScrollChanged(object sender, ScrollChangedEventArgs e) 
{ 
    if (e.HorizontalChange != 0) 
    { 
     // Do stuff.. 
    } 
} 
3

Si por 'arrastra horizontalmente' quiere decir 'se desplaza horizontalmente', puede usar el evento ScrollViewer.ScrollChanged. El ScrollChangedEventArgs contiene propiedades como HorizontalOffset y HorizontalChange.

Cuestiones relacionadas