我最近研究了 Prism(又名 WPF 的复合应用程序库),我非常喜欢用它来构建我的应用程序的方式。
但是,有一个缺点是我无法解决的。是否可以通过 Prism 将命令(例如来自 ViewModel)绑定到事件(例如:RightMouseButtonDown)?
这将是我正在尝试构建的应用程序的一个关键要求,如果我仅仅因为缺少这个功能而不能使用 Prism,那将是一种耻辱。
最好的问候,克里斯楚
这不是 Prism 的一部分,但您可以使用以下代码在 WPF 的窗口级别定义输入处理程序:
<Window.InputBindings>
<MouseBinding MouseAction="RightClick" Command="RightClickCommand"/>
</Window.InputBindings>
然后,每当在窗口中单击 RightMouse 并且没有被逻辑树中的任何其他控件捕获时,它将触发在其当前 DataContext(窗口的 ViewModel)中定义的 RightClickCommand - 事件从鼠标正下方的控件中冒泡。
虽然它不是 Prism 的一部分,但您可以使用 Marlon Grech 的AttachedBehaviours。