典型的なlistBoxで、どのlistBoxItemが現在フォーカスされているかを判断する方法はありますか? マウスオーバーイベントのような、選択前の状態について話しています。
MouseEnter
とイベントを試しましたFocus
が、問題は、これらのイベントを呼び出したアイテムを特定する方法が見つからなかったことです。
典型的なlistBoxで、どのlistBoxItemが現在フォーカスされているかを判断する方法はありますか? マウスオーバーイベントのような、選択前の状態について話しています。
MouseEnter
とイベントを試しましたFocus
が、問題は、これらのイベントを呼び出したアイテムを特定する方法が見つからなかったことです。
SelectedIndex または SelectedItem を使用する必要があります
もっと精巧なものが必要でしょう...
「イベントベース」のソリューションについては、これを参照してください-ただしI wouldn't recommend that (unless a fast fix or very specific) as it 'ties' your code, you should keep MVVM as much as possible
...
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" />
</Style>
</ListBox.ItemContainerStyle>
そして、MVVMで動作するように修正するには(i.e. you need to bind that event as a command into your view-model ICommand
-ある種の添付プロパティが必要です-たとえば(高速検索だけで多くの情報が得られます)...
WPF コマンドを MouseEnter イベントに関連付けるにはどうすればよいですか?
WPFでStackPanelのMouseEnterでコマンドバインディングを実行するにはどうすればよいですか?
WPF – MouseOver でボタン コマンドを実行する
次に、それをビューモデルプロパティにバインドしattached property
ます-「ホバーアイテム」の変更として取得します-そして、残りを行うことができます-独自の「HoveredItem」プロパティを設定/公開することもできます(これが私が行う方法です-すべてを接続しますまとめて、コマンド ワイヤの代わりに、その hoevered プロパティまたは何かに直接配線します. これは高速な疑似コードです。