向 DataGrid 添加滚动事件

发布于 2024-12-03 12:35:30 字数 907 浏览 0 评论 0原文

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

I have a DataGrid defined as follows as part of a 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>

I'd like to add an event on when the user drags horizontally on the DataGrid, it updates another chart I have. Can someone point me in the direction to get this started? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦开始←不甜 2024-12-10 12:35:30

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

If I understand your question correctly you want to find out when the user has scrolled the DataGrid Horizontally. This can be done with the attached event ScrollViewer.ScrollChanged.

Xaml

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

Code behind

private void dtGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    if (e.HorizontalChange != 0)
    {
        // Do stuff..
    }
}
梓梦 2024-12-10 12:35:30

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

If by 'drags horizontally' you mean 'scrolls horizontally' then you can use the ScrollViewer.ScrollChanged event. The ScrollChangedEventArgs contain properties such as HorizontalOffset and HorizontalChange.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文