バックグラウンド
を含む を含むカスタム コントロールがPopup
あります。ListBox
要件
ユーザーがアイテムを選択したときに、ポップアップを閉じて、選択したアイテムでいくつかのロジックを実行する必要があります。次の場合にユーザーが項目を選択します。
- 彼はマウスで項目をクリックします。
- 彼はキーボード ナビゲーション (上/下キー) で項目を選択し、Enter をクリックします。
問題
上記のすべてを実装しましたが、ロジックを実行するためにリッスンするイベントに問題があります。
イベントでロジックを実行するSelectionChanged
と、ユーザーが選択したアイテムをクリックしてもロジックが起動しないため、最初のシナリオがありません。でロジックを実行するPreviewMouseLeftButtonDown
と、選択が変更される前に起動するため、ユーザーが何を選択したかわかりません。これが両方を使用できない理由でもあります。
ListBoxItem
これを行うためにイベントをリッスンすることを考えました( WPF の ListBox の項目でマウス クリックをキャプチャする方法は? ) か、暗黙的なスタイルからコマンドを起動するListBoxItem
(スタイルで WPF 相互作用がトリガーされ、View Model でコマンドを呼び出す) が、彼らは私のために働きませんでした。
私が思いついた最良のアイデアは、動作またはアクションを介してある種の「選択後」MouseButtonDown イベントを作成することですが、その方法、またはこれが正しい方法であるかどうかはわかりません。
そのようなものを作成する方法はありますか?または、これに対するより良い解決策はありますか?