Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Prism中处理PreviewMouseDown和PreviewMouseUp事件_C#_Xaml_Mvvm_Prism - Fatal编程技术网

C# 在Prism中处理PreviewMouseDown和PreviewMouseUp事件

C# 在Prism中处理PreviewMouseDown和PreviewMouseUp事件,c#,xaml,mvvm,prism,C#,Xaml,Mvvm,Prism,我有一个Prism应用程序,正在尝试将视图中的PreviewMouseDown和PreviewMouseUp按钮事件绑定到视图模型中的命令。运行代码时,我看到以下异常: 作为一种解决方法,我目前正在绑定视图中的方法,并使用对视图模型的数据上下文的引用来执行该命令。这是可行的,但似乎不正确,因为视图现在已经了解了视图模型 处理此类事件的正确方法是什么?您不能将事件绑定到命令,例如按钮的Command属性 幸运的是,您不需要这样做,因为您有命令属性。如果命令从CanExecute返回false,它

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

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


处理此类事件的正确方法是什么?

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

幸运的是,您不需要这样做,因为您有
命令
属性。如果命令从
CanExecute
返回
false
,它甚至会禁用该按钮

如果您没有按钮或鼠标向下,则可以使用
InvokeCommandAction
(来自Prism或Interactivity)

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

除非我误解了您的答案,否则这将允许我查看窗口中的鼠标事件,但仍然不允许我查看按钮的上/下事件。我想做的是,当用户按下按钮时,启动电机移动,当用户松开按钮时,停止电机移动。当然,您也可以通过这种方式在按钮上处理
MouseDown
MouseUp
,但不需要是按钮。。。一个
TextBlock
就行了,牙关好了!谢谢你的帮助。
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>