どこかのだれかへ

職業ゲームプログラマ。気になったニュースのピックアップや開発日記などを書いています。

WPFのListViewでダブルクリックでコマンドを実行する

サンプルを作成したのでGitHubにアップした。

GitHub - Tepp91/WPFSampleCollection
にあるListViewDoubleClickがそれだ。

当初、ListViewのOnDoubleClickイベントを使おうとしたが、大まかうまくいくもののListViewのヘッダー部分でもダブルクリックに反応してしまっていた。

また、トリガーなどを利用する方法もあったが、イベントでダブルクリックされたアイテムのインスタンスを取得したかったので、今回はダブルクリックでコマンドを実行する添付ベハイビアを作成することで解決した

今回嵌まったポイントしては、以下のコードだ

ListViemItemにはListViewのDataContextを見に行ってくれないため、RelativeSourceを使用することで直接見に行くようにしている。これに気付くのにずいぶん時間がかかった。

ちなみに今回はダブルクリックで対応したが、もちろん単純なクリックでも紐付けるイベントを変えれば可能だし、また添付ビヘイビアなのでListView意外にも利用することが可能なので、汎用性が高くなっている。