我有一个WPF桌面应用程序,其中包含一些包含一些项目的ListView。
我希望在用鼠标点击某个项目时,或者使用键盘选择该项目并且用户点击"输入"时会收到通知。 所需的行为类似于"设置"在现代Windows 10 UI上,或右侧项目
SelectionChanged对我不起作用,因为当用户使用键盘导航时,我只想在他们点击"输入"。
时执行操作。有没有标准的方法呢?我可以捕捉键/鼠标事件,但它似乎是一个可疑的解决方案。
答案 0 :(得分:1)
有没有标准的方法呢?
没有。你所描述的不是标准行为。
由于您按下键盘上的向上和向下键(而不是按ListView
)时实际选择了ENTER
中的项目,因此除了处理键和键之外别无选择。鼠标事件我很害怕。
但这应该是一件非常容易实现的事情。例如,您可以处理PreviewKeyDown
的{{1}}事件和ListViewItem容器的ListView
事件。
请参阅以下示例代码。
PreviewMouseLeftButtonDown
<ListView x:Name="lv" PreviewKeyDown="lv_PreviewKeyDown">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="lv_PreviewMouseLeftButtonDown" />
</Style>
</ListView.ItemContainerStyle>
</ListView>
实现一些自定义行为并不“愚蠢”:)