我看到 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;
}