2013-04-25 4 views
1

Я работаю с DataGrid.Преобразование KeyBinding в MouseBinding в WPF

настоящее время у меня следующий код 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 'Связывание' не может быть установлен на территории 'Команда' типа 'MouseBinding' A«Binding. 'может быть установлен только в DependencyProperty объекта DependencyObject.

Что я делаю неправильно?

+1

Я думаю, что это должно быть '

+0

Извините, это на самом деле то, что у меня уже было. '' Он дает ту же ошибку. – quokwok

ответ

0

Попробуйте это:

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

Вы не можете использовать Binding расширение разметки на Command свойства. Как говорит ошибка, Command не DependencyProperty.

+0

Я получаю ту же ошибку, использую ли я 'или' '. – quokwok

0

Почему бы вам не обрабатывать каждое событие в привязке к ситуации в поведении? Таким образом, вы можете легко назначить свои события, проверить модификаторы и отправить команду в режим просмотра.

Если вы хотите, я могу предоставить код для этого сценария.

+0

Да, пожалуйста! – quokwok

Смежные вопросы