我如何绑定一个命令,例如在WPF中的ControlTemplate鼠标右键?(How do I bi

2019-10-22 17:33发布

我有一个自定义控制派生类和去同一个视图模型。 用户可以做几个动作与此对照,我想这是最好的实现这些为对象的RoutedCommand或衍生的ICommand在视图模型对象,这样的CONTROLTEMPLATES可以绑定到他们。 绑定命令在一个控件模板的按钮应该是简单的,但我怎么能绑定命令,例如在另一个控件模板鼠标右键? 可能是一个MouseGesture参与,但我有一个很难件装配在一起。

Answer 1:

一个MouseGesture参与,但你没有明确构建它。 您可以使用MouseBinding这将构建一个MouseGesture你引擎盖下。

你需要的UIElement附上您的结合。 这里是你如何与一个单独的装饰做。

 <ControlTemplate ...>
   <Decorator>

     <Decorator.InputBindings>
       <MouseBinding MouseAction="RightClick" Command="..." />
     </Decorator.InputBindings>

     ... content here ...

   </Decorator>
 </ControlTemplate>

更有可能的是你的控件模板使用面板如DockPanel中或网格布局,在这种情况下,你可以附上绑定到,而不是增加一个装饰。



文章来源: How do I bind a command to e.g. the right mouse button in a ControlTemplate in WPF?