C# 获取焦点上的listBoxItem
在一个典型的listBox上,有没有办法确定当前关注的listBoxItem? 我说的是选择前的状态,更像是鼠标悬停事件C# 获取焦点上的listBoxItem,c#,xaml,windows-phone-8,C#,Xaml,Windows Phone 8,在一个典型的listBox上,有没有办法确定当前关注的listBoxItem? 我说的是选择前的状态,更像是鼠标悬停事件 我尝试了MouseEnter和Focus事件,但问题是,我找不到方法来确定哪些项目称为这些事件。您应该使用SelectedIndex或SelectedItem您需要更详细的内容 关于“基于事件”的解决方案,请看这篇文章-尽管我不建议(除非是快速修复或非常具体的)因为它“绑定”了您的代码,所以您应该尽可能多地保留MVVM 要解决此问题,请使用MVVM(即,您需要将该事件作
我尝试了
MouseEnter
和Focus
事件,但问题是,我找不到方法来确定哪些项目称为这些事件。您应该使用SelectedIndex或SelectedItem您需要更详细的内容
关于“基于事件”的解决方案,请看这篇文章-尽管我不建议(除非是快速修复或非常具体的)因为它“绑定”了您的代码,所以您应该尽可能多地保留MVVM
要解决此问题,请使用MVVM(即,您需要将该事件作为命令绑定到视图模型ICommand中
)-您需要一个附加的排序属性-例如(只需快速搜索即可获得多个)
然后将该
附加属性
绑定到视图模型属性-您将得到“悬停项”更改-然后您可以执行其余操作-甚至设置/公开您自己的“HoveredItem”属性(这是我应该怎么做的-将所有内容连接在一起,而不是直接使用命令行连接到hoevered属性或其他内容。这是一个快速的伪代码,希望能有所帮助。不起作用。SelectedIndex仍然是-1,SelectedItem为null
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" />
</Style>
</ListBox.ItemContainerStyle>