WPF DataGrid有一个由Del键触发的内置Delete命令。但是,我编写了自己的命令实现,该命令从DataGrid中删除行并更新基础模型。我仍然希望这个自定义命令由Del键触发。
我试图通过以下方式实现这一目标:
<Grid.InputBindings>
<KeyBinding Command="{Binding MyOwnDeleteCommand}"
CommandParameter="{Binding ElementName=myDataGrid,Path= SelectedItems}"
Key="Delete"/>
</Grid.InputBindings>
但这失败了。添加Modifiers="Shift"
属性时,它会起作用。
使用Del键的唯一方法是订阅DataGrid的KeyDown事件。但是可以直接将我的自定义命令绑定到Del键吗?
答案 0 :(得分:1)
我想您可以在DataGrid
上停用删除功能,因为您通过Command
KeyBinding
中的逻辑
<DataGrid CanUserDeleteRows="False" ....../>
不确定使用RoutedCommand是否适合您的模式,但您可以从DataGrid路由命令并在那里处理您的逻辑。
<DataGrid.CommandBindings>
<CommandBinding Command="DataGrid.DeleteCommand" Executed="CommandBinding_Executed"/>
</DataGrid.CommandBindings>
答案 1 :(得分:0)
解决方案非常简单:只需在Datagrid上重复UserControl的Keybinding即可! 我还发现您可以将Keybinding设置为'ApplicationCommands.NotACommand以禁用Control中内置的手势。