我看到 WPF Datagrid 的以下行为。
当项目多于 View 区域的高度时,垂直滚动可用。
当我单击 View 中的最后一行时,会自动滚动显示在最后一行下方的行。

数据网格的第一列是一个复选框。当用户点击最后一行时,我没有收到复选框点击事件。所有其他行中的复选框工作正常。

我想禁用自动滚动,但不知道该怎么做。

<Style x:Key="SingleClickEditing"  TargetType="{x:Type toolkit:DataGridCell}">
     <EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
     <EventSetter Event="CheckBox.Unchecked" Handler="OnChecked"/>
</Style>

最佳答案

我在这里找到了解决方案:
WPF DataGrid: how do I stop auto scrolling when a cell is clicked?

我改变了 DataGrid 的样式

 <Style x:Key="SingleClickEditing"  TargetType="{x:Type toolkit:DataGridCell}">
       <EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
       <EventSetter Event="CheckBox.Unchecked" Handler="OnChecked"/>
       <EventSetter Event="Control.RequestBringIntoView" Handler="DataGrid_Documents_RequestBringIntoView"  />
 </Style>


private void DataGrid_Documents_RequestBringIntoView(object sender,    RequestBringIntoViewEventArgs e)
{
    e.Handled = true;
}

10-06 12:18