0

我正在寻找一种将修饰符添加到 EventToCommand usign mvvm light 的解决方案。我想要实现的是绑定一个命令让我们说 mouseEnter 但只有在按下 ctrl 时。下面我只有一个 mouseenter 命令。

<i:Interaction.Triggers>
  <i:EventTrigger EventName="MouseEnter">
    <cmd:EventToCommand Command="{Binding TestCmd}"/>
  </i:EventTrigger>
</i:Interaction.Triggers>

知道如何添加键盘修饰符吗?

4

2 回答 2

1

只需这样做:

TestCmd = new RelayCommand(() =>
{
    // command action here

}, () => Keyboard.Modifiers == ModifierKeys.Control);
于 2012-10-04T18:16:29.157 回答
0

我认为最好的解决方案是使用 RelayCommand 的 CanExecute 功能。

一个解决方案可能是:

TestCmd= new RelayCommand<MouseEventArgs>(e =>
{
     // do your command
},   e =>
{
     return (Keyboard.Modifiers & ModifierKeys.Control) > 0;
});
于 2012-10-03T11:51:47.017 回答