c# - 双击 ListView 时执行命令。 (WPF-MVVM)

标签 c# wpf mvvm .net-4.0

我在将命令 (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 事件将该事件标记为已处理。尝试改用 PreviewLeftClickPreviewLeftDoubleClick

编辑

由于 MouseBindings 不包含 PreviewLeftClickPreviewLeftDoubleClick,请尝试使用发现的 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/

相关文章:

c# - 如何在用户控件中添加 Canvas xaml资源

c# - 使用 MVVM 实现搜索功能

c# - 从 silverlight 中的 observablecollection 中删除多个项目

c# - 对为什么对虚拟对象进行单元测试有用感到困惑

c# - 调用GetInstance方法后,实例的简单注入(inject)器注册

c# - 如何使用 C# 中的字符串从具有数据源集的列表框中删除项目

mvvm - zk 表单重置在 MVVM 中不起作用

c# - 如何制作通用存储库?

wpf - 使用ImageBrush的网格背景图像

MVVM/WPF : Using a ObservableCollection<T> as a list in a domain model, 是好还是坏?