1

我正在使用 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}" />

它工作正常。我单击数据网格中的一行,按 Ctrl+D 并执行命令(在本例中,刷新一行)。

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

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

我收到错误“无法在“MouseBinding”类型的“命令”属性上设置“绑定”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。

我究竟做错了什么?

4

2 回答 2

0

尝试这个:

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

您不能在 Command 属性上使用绑定标记扩展。正如错误所说,Command 不是 DependencyProperty。

于 2013-04-25T13:18:02.810 回答
0

为什么不将每个事件都处理为行为中的绑定情况?通过这种方式,您可以轻松分配事件、检查修改器并向视图模型发送命令。

如果您愿意,我可以为这种情况提供一些代码。

于 2013-04-25T13:28:39.770 回答