在WPF中将KeyBinding转换为MouseBinding

时间:2013-04-25 13:11:21

标签: wpf xaml

我正在使用DataGrid。

我目前有以下XAML:

<dg:DataGrid lc:DataGridPackage.QueryGrid="{Binding myGrid}">
    ...
    <dg:DataGrid.Resources>
        <lc:CommandReference x:Key="myCommand" Command="{Binding myCommandActionItem}" />
    </dg:DataGrid.Resources>

    <dg:DataGrid.InputBindings>
        <KeyBinding Modifiers="Control" Key="D" Command="{StaticResource myCommand}" />

工作正常。我单击datagrid中的一行,按Ctrl + D并执行命令(在这种情况下,刷新一行)。

但是,如果我将KeyBinding更改为MouseBinding:

<MouseBinding MouseAction="LeftDoubleClick" Command="{StaticResource myCommand}"> 

我得到错误“A'Binding'不能在'MouseBinding'类型的'Command'属性上设置。'Binding'只能在DependencyObject的DependencyProperty上设置”。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

<MouseBinding MouseAction="LeftDoubleClick" Command="{StaticResource myCommand}" />

您不能在Command属性上使用Binding标记扩展。如错误所示,Command不是DependencyProperty。

答案 1 :(得分:0)

为什么不在行为中处理每个事件到绑定情况? 这样,您可以轻松分配事件,检查修改器并向viewmodel发送命令。

如果您愿意,我可以为此方案提供一些代码。