Wpf 当DataGrid处于编辑模式时,是否有方法阻止用户选择另一行?
我希望,如果单元格/行进入编辑模式,那么,如果用户尝试选择其他行,它应该尝试提交该行,如果该行未成功提交,它应该拒绝选择请求,并且编辑行应该保持选中状态并处于编辑模式 你有经验找个好帮手吗?有什么好办法吗Wpf 当DataGrid处于编辑模式时,是否有方法阻止用户选择另一行?,wpf,datagrid,selection,selector,Wpf,Datagrid,Selection,Selector,我希望,如果单元格/行进入编辑模式,那么,如果用户尝试选择其他行,它应该尝试提交该行,如果该行未成功提交,它应该拒绝选择请求,并且编辑行应该保持选中状态并处于编辑模式 你有经验找个好帮手吗?有什么好办法吗 注意:我已经为这个问题挣扎了很长一段时间,并且已经获得了一些经验,所以请只发布工作示例,而不是随意的想法。下面的代码包括扩展自(代码规范化以适合StackOverflow screen witdh,抱歉) 用法: <DataGrid Name="dg" src:DataGridSelec
注意:我已经为这个问题挣扎了很长一段时间,并且已经获得了一些经验,所以请只发布工作示例,而不是随意的想法。下面的代码包括扩展自(代码规范化以适合StackOverflow screen witdh,抱歉) 用法:
<DataGrid Name="dg"
src:DataGridSelectionChangingBehavior.EnableSelectionChanging="True"
src:DataGridSelectionChangingBehavior.SelectionChanging="dg_SelectionChanging">
注意:VisualStudio可能不会在intellisense中显示该事件,甚至可能会生成设计时错误,但它应该能够完美地编译和工作
仅供参考:已修改代码格式以适应SO屏幕。下面的代码包括扩展自(代码规范化以适应StackOverflow屏幕,对不起) 用法:
<DataGrid Name="dg"
src:DataGridSelectionChangingBehavior.EnableSelectionChanging="True"
src:DataGridSelectionChangingBehavior.SelectionChanging="dg_SelectionChanging">
注意:VisualStudio可能不会在intellisense中显示该事件,甚至可能会生成设计时错误,但它应该能够完美地编译和工作
仅供参考:修改代码格式以适应SO屏幕
Private Sub dg_SelectionChanging(ByVal sender As Object,
ByVal e As SelectionChangingEventArgs)
If e.CurrentRow.IsEditing Then
Dim item = TryCast(e.CurrentRow.Item, MyEntityType)
If item IsNot Nothing AndAlso item.IsValid Then
Dim dataGrid = DirectCast(sender, DataGrid)
Dim committed = dataGrid.CommitEdit(DataGridEditingUnit.Row, True)
If committed Then Exit Sub
End If
e.Cancel = True
End If
End Sub