我很高兴使用ICommand实现来处理按钮上的单个操作:

<Button Command="{Binding Path=ActionDown}">Press Me</Button>

通过ICommand实现RelayCommand
但是我还没有找到一种简单的方法来为新闻发布提供发布操作(在SO上以及在Internet上的其他位置)。 IE浏览器我想做这样的事情,但是我不知道该怎么做:
<Button PressCommand="{Binding Path=ActionDown}" ReleaseCommand="{Binding Path=ActionUp}">Press and Release Me</Button>

MVVM处理这种要求的正确方法是什么?

最佳答案

您可以使用EventTrigger中的System.Windows.Interactivity触发事件命令

<Button Content="Press Me">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
            <i:InvokeCommandAction Command="{Binding Path=ActionDown}"/>
        </i:EventTrigger>
        <i:EventTrigger EventName="PreviewMouseLeftButtonUp">
            <i:InvokeCommandAction Command="{Binding Path=ActionUp}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Button>

您需要添加对System.Windows.Interactivity的引用并定义 namespace
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

关于c# - ICommand以MVVM样式按下和释放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26590898/

10-12 23:55