2011-09-06 16 views
6

Ho un DataGrid definito come segue come parte di un UserControl:Aggiunta di un evento di scorrimento per DataGrid

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

vorrei aggiungere un evento quando l'utente trascina orizzontalmente sul DataGrid, si aggiorna un'altra grafico che ho. Qualcuno può indicarmi la direzione per iniziare? Grazie.

+0

Che cosa si intende per 'trascina in orizzontale'? Intendi pergamene orizzontalmente? –

risposta

16

Se ho capito bene la tua domanda, vuoi scoprire quando l'utente ha fatto scorrere lo DataGrid in senso orizzontale. Questo può essere fatto con l'evento allegato ScrollViewer.ScrollChanged.

Xaml

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

codice dietro

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

Se "trascina orizzontalmente" significa "scorre in orizzontale", è possibile utilizzare l'evento ScrollViewer.ScrollChanged. Lo ScrollChangedEventArgs contiene proprietà come HorizontalOffset e HorizontalChange.

Problemi correlati