1

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 キーに直接バインドすることは可能ですか?

4

2 に答える 2

1

を介しDataGridて独自のロジックを処理しているため、削除を無効にできると思いますCommandKeyBinding

<DataGrid CanUserDeleteRows="False"  ....../> 

編集:

RoutedCommandの使用がパターンに適合するかどうかはわかりませんが、コマンドを DataGrid からルーティングして、そこでロジックを処理できます。

<DataGrid.CommandBindings>
    <CommandBinding Command="DataGrid.DeleteCommand" Executed="CommandBinding_Executed"/>
</DataGrid.CommandBindings>
于 2013-07-26T08:32:56.230 に答える