2011-09-06 40 views
6

我定義爲一個DataGrid如下的用戶控件的一部分:添加滾動事件的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> 

我想,當用戶在DataGrid的水平拖累添加事件,它更新另一個我有圖表。有人能指出我開始這個目標嗎?謝謝。

+0

碼你說的 '水平拖動' 是什麼意思?你的意思是水平滾動嗎? –

回答

16

如果我正確理解你的問題,你想知道用戶何時水平滾動DataGrid。這可以通過附加事件ScrollViewer.ScrollChanged完成。

的XAML

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

背後

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

如果通過「水平拖動」表示「水平滾動」,則可以使用ScrollViewer.ScrollChanged事件。 ScrollChangedEventArgs包含諸如HorizontalOffsetHorizontalChange之類的屬性。