2011-09-06 15 views
6

Mam DataGrid zdefiniowane następująco jako część UserControl:Dodanie zdarzenia przewijania 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> 

chciałbym dodać zdarzenie, gdy użytkownik przeciągnie poziomo na DataGrid, aktualizuje innego wykres mam. Czy ktoś może wskazać mi kierunek, żeby to się zaczęło? Dzięki.

+0

Co masz na myśli przez 'ciągnie poziomo'? Masz na myśli zwoje w poziomie? –

Odpowiedz

16

Jeśli dobrze rozumiem twoje pytanie, chcesz się dowiedzieć, kiedy użytkownik przewinął w poziomie poziom 0,. Można to zrobić za pomocą dołączonego zdarzenia ScrollViewer.ScrollChanged.

XAML

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

kod związany

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

Jeśli przez "przeciąganie w poziomie" rozumie się "przewijanie w poziomie", można użyć zdarzenia ScrollViewer.ScrollChanged. ScrollChangedEventArgs zawiera właściwości, takie jak HorizontalOffset i HorizontalChange.

Powiązane problemy