2011-09-06 72 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之类的属性。