2011-09-06 7 views
6

Tôi có một DataGrid quy định như sau như một phần của một usercontrol:Thêm một sự kiện cuộn để 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> 

Tôi muốn thêm một sự kiện trên khi người dùng kéo ngang trên DataGrid, nó cập nhật khác biểu đồ tôi có. Ai đó có thể chỉ cho tôi theo hướng để bắt đầu điều này không? Cảm ơn.

+0

Ý anh là gì bằng cách 'kéo ngang'? Bạn có nghĩa là cuộn theo chiều ngang? –

Trả lời

16

Nếu tôi hiểu chính xác câu hỏi của bạn, bạn muốn tìm hiểu thời điểm người dùng đã cuộn DataGrid theo chiều ngang. Điều này có thể được thực hiện với sự kiện đính kèm ScrollViewer.ScrollChanged.

XAML

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

Mã đằng sau

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

Nếu bằng cách 'kéo theo chiều ngang', bạn có nghĩa là 'cuộn theo chiều ngang' thì bạn có thể sử dụng sự kiện ScrollViewer.ScrollChanged. ScrollChangedEventArgs chứa các thuộc tính như HorizontalOffsetHorizontalChange.