向DataGrid添加滚动事件

本文关键字:事件 滚动 添加 DataGrid | 更新日期: 2023-09-27 18:08:01

我有一个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上水平拖动时,它会更新我的另一个图表。有人能告诉我怎么开始吗?谢谢。

向DataGrid添加滚动事件

如果我正确理解了你的问题,你想知道用户何时水平滚动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..
    }
}

如果"水平拖动"的意思是"水平滚动",那么你可以使用ScrollViewer.ScrollChanged事件。ScrollChangedEventArgs包含HorizontalOffsetHorizontalChange等属性