向DataGrid添加滚动事件

7

我有一个DataGrid作为UserControl的一部分,定义如下:

<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上进行水平拖动时,能够触发一个事件,更新另一个图表。请问有没有人能指导我如何开始?谢谢。


“drags horizontally”是什么意思?你是指水平滚动吗? - Philipp Schmid
2个回答

19

如果我正确理解您的问题,您想查找用户何时水平滚动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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接