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