我有一个自定义控制派生类和去同一个视图模型。 用户可以做几个动作与此对照,我想这是最好的实现这些为对象的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?