1

我有一个按钮。我希望她使用 mvvm 对 shift + 鼠标单击做出反应

我尝试这样做:

XAML:

<Button>
  <Button.InputBindings>
    <MouseBinding Command="{Binding AAA}" Gesture="Shift+LeftClick" />
  </Button.InputBindings>
</Button>

C#:

private RelayCommand _aaa;

        public RelayCommand AAA
        {
            get
            {
                return _aaa ??(_aaa =new RelayCommand(ExecuteAAA, CanExecuteAAA));
            }
        }

        private void ExecuteAAA()
        {    
            MessageBox.Show("111");
        }

       private bool CanExecuteAAA()
        {
            return true;
        }

但它不起作用。

我该怎么做 ?

4

2 回答 2

1

据我所知,您的代码没有任何问题。如果绑定正确,手势定义是正确的并且可以工作。您是否检查了输出窗口是否存在绑定错误?

于 2013-08-02T06:42:05.977 回答
0

这行得通!

XAML:

<Button Command="{Binding AAA}" />

C#:

private RelayCommand _aaa;

        public RelayCommand AAA
        {
            get
            {
                return _aaa ??(_aaa =new RelayCommand(ExecuteAAA, CanExecuteAAA));
            }
        }

        private void ExecuteAAA()
        {    
          if (System.Windows.Forms.Control.ModifierKeys == System.Windows.Forms.Keys.Shift)
          {
             MessageBox.Show("111");
          }
        }

       private bool CanExecuteAAA()
        {
            return true;
        }
于 2013-08-02T07:13:18.853 回答