我正在使用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上设置”。
我做错了什么?
答案 0 :(得分:0)
试试这个:
<MouseBinding MouseAction="LeftDoubleClick" Command="{StaticResource myCommand}" />
您不能在Command属性上使用Binding标记扩展。如错误所示,Command不是DependencyProperty。
答案 1 :(得分:0)
为什么不在行为中处理每个事件到绑定情况? 这样,您可以轻松分配事件,检查修改器并向viewmodel发送命令。
如果您愿意,我可以为此方案提供一些代码。