将命令绑定到事件?

djc*_*uch 12 c# wpf xaml mvvm

将命令绑定到事件的好方法是什么?在我的WPF应用程序中,有些事件我想通过我的ViewModel捕获和处理,但我不确定如何.失去焦点,鼠标悬停,鼠标移动等等.因为我正在努力坚持MVVM模式,我想知道是否有纯XAML解决方案.

谢谢!

Tho*_*que 7

看看Marlon Grech的附加命令行为,它可能正是您正在寻找的


Boj*_*nik 5

为了处理事件,您必须有一些代码将自身附加到事件并执行您的命令作为响应.最终目标是在XAML中:

  MouseMoveCommand="{Binding MyCommand}"
Run Code Online (Sandbox Code Playgroud)

为了实现这一点,您需要为要处理的每个事件定义附加属性.请参阅示例以及执行此操作的框架.


kux*_*kux 5

使用System.Windows.Interactivity

…xmlns:i=http://schemas.microsoft.com/expression/2010/interactivity…

<Slider    
    <i:Interaction.Triggers>    
        <i:EventTrigger EventName="ValueChanged">
            <i:InvokeCommandAction    
                Command="{Binding MyCommand}"    
                CommandParameter="{Binding Text, ElementName=textBox}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</Slider>
Run Code Online (Sandbox Code Playgroud)

确保您的项目引用程序集System.Windows.Interactivity.

来源:MSDN博客从您选择的事件中执行命令