Tag: WPF/DataGrid/編集

目次

参考情報

編集コマンド

キーボードによる編集

編集コマンドのハンドリング方法

参考リンク

基本

  • DataGridで何も指定しないとDeleteキーによる削除が行われてしまう。これは単に画面・メモリ上の行を削除するだけ。
  • ユーザーに削除前の確認を行ったり、関連する情報をまとめて削除したりする必要がある場合、デフォルトの削除処理ではなく、自前の削除処理を呼び出す必要がある。
  • これを行うために、PreviewKeyDownイベントハンドラを使ったり、自前のInputBindingを使うことができる。(CommandManager.RegisterClassInputBinding()なども)

PreviewKeyDownイベントハンドラを使う。

Deleteキーがおされた時にデフォルトのイベントハンドラが呼ばれる前に自前の処理を行う。

xaml

        <DataGrid PreviewKeyDown="dataGrid_PreviewKeyDown">
        </DataGrid>

コードビハインド

        private void dataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Delete)
            {
                var dataGrid = (DataGrid)sender;
                MessageBox.Show("DELETEキーが押されました");
                e.Handled = true; //trueを設定するとデフォルト動作は行われない。
            }
        }

Tips

行を追加可能にする

  • ItemsSourceバインドしているオブジェクトに引数なしのコンストラクタが必要。
  • IsReadOnly="False", CanUserAddRows="True" にする。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:47:45