在 Prism 中处理 PreviewMouseDown 和 PreviewMouseUp 事件

Handling PreviewMouseDown and PreviewMouseUp events in Prism

我有一个 Prism 应用程序,我正在尝试将视图中的 PreviewMouseDown 和 PreviewMouseUp 按钮事件绑定到视图模型中的命令。当我 运行 代码时,我看到以下异常:

作为解决方法,我目前正在绑定到视图中的方法,并使用对视图模型的数据上下文的引用来执行命令。这有效但似乎不正确,因为视图现在了解视图模型。

处理此类问题的正确方法是什么?

您不能将事件绑定到命令,例如按钮的 Command 属性。

幸运的是,您不需要,因为您有 Command 属性。如果命令 returns false 来自 CanExecute.

,它甚至会禁用按钮

如果您有按钮以外的东西或 MouseDown 以外的东西,您可以使用 InvokeCommandAction(来自 Prism 或来自 Interactivity)...

xmlns:i="http://schemas.microsoft.com/xaml/behaviors"

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseDown">
        <prism:InvokeCommandAction Command="{Binding MyCommand}"/>
        <!-- or -->
        <i:InvokeCommandAction Command="{Binding MyCommand}"/>
    </i:EventTrigger>
</i:Interaction.Triggers>