【问题标题】:Adding a scroll event to DataGrid向 DataGrid 添加滚动事件
【发布时间】:2011-09-06 21:58:19
【问题描述】:

我有一个 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 上水平拖动时添加一个事件,它会更新我拥有的另一个图表。有人可以指出我开始这个的方向吗?谢谢。

【问题讨论】:

  • “水平拖动”是什么意思?你的意思是水平滚动吗?

标签: c# wpf datagrid


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果“水平拖动”是指“水平滚动”,那么您可以使用ScrollViewer.ScrollChanged 事件。 ScrollChangedEventArgs 包含 HorizontalOffsetHorizontalChange 等属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2018-12-01
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多