我在将命令 (ICommand) 绑定(bind)到 ListView 的 MouseBinding 时遇到一些困难。 我使用这段 XAML 代码来测试不同的鼠标手势:
<ListView.InputBindings>
<MouseBinding Command="{Binding OpenSOACommand}" Gesture="LeftClick" />
<MouseBinding Command="{Binding OpenSOACommand}" Gesture="MiddleClick" />
<MouseBinding Command="{Binding OpenSOACommand}" Gesture="LeftDoubleClick" />
</ListView.InputBindings>
LeftClick 和 LeftDoubleClick 手势未触发,但 MiddleClick 鼠标绑定(bind)工作完美(我也一次测试了一个鼠标绑定(bind)...)。
LeftDoubleClick 和 MiddleClick 手势的处理方式有区别吗?如果有,我如何将 ICommand 绑定(bind)到 LeftDoubleClick 手势?
谢谢!
最佳答案
ListView 的默认 Click
事件将该事件标记为已处理。尝试改用 PreviewLeftClick
和 PreviewLeftDoubleClick
编辑
由于 MouseBindings
不包含 PreviewLeftClick
或 PreviewLeftDoubleClick
,请尝试使用发现的 AttachedCommandBehavior
代码 here它允许您将Command
附加到几乎任何Event
例如,
<ListView local:CommandBehavior.Event="PreviewMouseDown"
local:CommandBehavior.Command="{Binding OpenSOACommand}" />
关于c# - 双击 ListView 时执行命令。 (WPF-MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997361/