如何防止DataGrid中的自动滚动

本文关键字:滚动 何防止 DataGrid | 更新日期: 2023-09-27 17:59:28

我在XAML中定义了一个数据网格,如下所示:

<toolkit:DataGrid Margin="10,116,62,34" Name="WADataGrid" RowBackground="LightYellow"   AlternatingRowBackground="White"
                          BorderBrush="Gray" BorderThickness="2" IsReadOnly="True"     CanUserReorderColumns="False" CanUserResizeColumns="True" 
                          CanUserSortColumns = "True" SelectionMode="Extended" MouseDoubleClick="DataGrid_MouseDoubleClick" 
                          AutoGenerateColumns="False" Height="400" Canvas.Left="0" Canvas.Top="-76" Width="731">

然后,我处理双击发生的行所选的项目。

然而,当垂直滚动条处于打开状态,并且网格最后一行下方有项目尚未显示时,双击会导致最后一行向上滚动一行,使其成为倒数第二行。双击方法中所选项目的值是被隐藏并向上滚动的行。

双击显示的最后一行时,如何防止数据网格向上滚动?

如何防止DataGrid中的自动滚动

我可以通过使用PreviewMouseDoubleClick来解决这个问题。在这样做的时候,我能够在滚动发生之前识别出正确的行。

我已经实现了同样的目标,这是您在下面的代码片段中想要的。在Xaml ScrollViewer.CanContentScroll="False" 中设置DataGrid属性

    <DataGrid ScrollViewer.CanContentScroll="False" ... />