XamDataGrid では、編集状態のセルに数値を入力している際に、キーボードの上矢印キーや下矢印キーを押すことで、セル内の数値が増減する機能が既定で有効になっています。この記事では、キーボード操作によるセル内の数値の増減を無効化する方法についてご紹介します。
キーボード操作の無効化
まず、PreviewKeyDown イベントで、上矢印キーと下矢印キーが押されたときに、数値の増減を無効化するロジックを実装します。
数値入力時にキーボード操作による増減を無効化するために、PreviewKeyDown イベントを使用します。
private void XamDataGrid_PreviewKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Up || e.Key == Key.Down) { e.Handled = true; } }
上記のコードでは、上矢印キー (Key.Up) または下矢印キー (Key.Down) が押された場合、e.Handled = true; とすることでデフォルトの数値増減の動作を無効化しています。
これにより、セルの数値が増減しなくなり、また左右の矢印キーによるカーソル位置の移動はそのまま有効となります。
XamDataGrid の設定
次に、PreviewKeyDownイベントをXamDataGridにバインドします。
<igDP:XamDataGrid .... PreviewKeyDown="XamDataGrid_PreviewKeyDown"> </igDP:XamDataGrid>
以上の手順で、XamDataGridの数値入力時にキーボード操作による増減を無効化することができます。
実行結果
これで、XamDataGrid の編集状態において、上矢印キーと下矢印キーで数値が変更される動作が無効化されます。左右のキーを使用したカーソル移動は引き続き使用できます。