我在WPF Datagrid中看到以下行为。 当有更多项目然后是视图区域的高度时,可以使用垂直滚动。 当我单击视图中的最后一行时,会自动滚动,直到最后一行的行进入视图。
datagrid的第一列是一个复选框。当用户点击最后一行时,我没有收到复选框点击的事件。所有其他行中的复选框都可以正常工作。
我想禁用自动滚动,但无法确定如何操作。
<Style x:Key="SingleClickEditing" TargetType="{x:Type toolkit:DataGridCell}">
<EventSetter Event="CheckBox.Checked" Handler="OnChecked"/>
<EventSetter Event="CheckBox.Unchecked" Handler="OnChecked"/>
</Style>
答案 0 :(得分:3)
我在这里找到了解决方案: 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;
}
答案 1 :(得分:0)
Datagrid上有一个属性,您可以设置该属性来确定Vertical,Horizontal,Both或None(关于滚动条)是否可见。