ListBoxやListViewの選択項目がクリックで変更されたときに実行したい処理があったので、検出のしかたを調べてみました。 ヒントになったのはこんな情報。
- Stack Overflow ... WPF ListView - detect when selected item is clicked
参考ページにはListViewの選択済みの項目がクリックされたのを検出する方法が書いてありますね。 ListViewItemのPreviewMouseLeftButtonDownイベントで検出しています。 Previewイベントという事でListViewの選択項目が反映される前のListViewItemの状態を見る事ができます。 そこでIsSelectedを見れば、まだ選択されていないものがクリックされてこれから選択が変更されるところなのか、選択済みのものがクリックされたのかが分かるという仕組みです。
ListViewでもListBoxでもだいたい同じです。 そして、IsSelectedを見て分岐するところを参考ページと逆にすれば目的が達成できそうですね。