如何防止DataGrid中的自动滚动

时间:2011-06-16 05:47:53

标签: c# wpf datagrid autoscroll

我在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">

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

当垂直滚动条打开并且网格的最后一行下面的项目尚未显示时会发生什么,双击会导致最后一行向上滚动一行,使其成为最后一行的下一行。双击方法中所选项目的值是已隐藏并向上滚动的行。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

通过以下代码片段,您已经实现了相同的目的。在Xaml ScrollViewer.CanContentScroll="False"

中设置DataGrid属性
    <DataGrid ScrollViewer.CanContentScroll="False" ... />