Как заставить команду WPF выполняться при двойном щелчке строки таблицы данных Infragistics WPF? - PullRequest
4 голосов
/ 29 марта 2012

У меня есть WPF XamDataGrid (я использую шаблон MVVM, xaml ниже), и мне нужно, чтобы он отображал детали записи в другом окне, когда пользователь дважды щелкает строку. У меня есть команда, которая выполняет работу, но я не знаю, как ее запустить, как с помощью кнопок. Я хочу иметь возможность выполнить команду, когда пользователь дважды щелкает строку, поэтому мне нужно отправить строку с двойным щелчком (или ее идентификатор) в качестве параметра в команду. Возможно ли это?

<igDP:XamDataGrid DataSource="{Binding SomeList}">
            <igDP:XamDataGrid.FieldLayoutSettings>
                <igDP:FieldLayoutSettings AutoGenerateFields="False"/>
            </igDP:XamDataGrid.FieldLayoutSettings>
            <igDP:XamDataGrid.FieldLayouts>
                <igDP:FieldLayout >
                    <igDP:FieldLayout.Fields>
                        <igDP:Field  Name="ObjectId" Label="Id" Width="Auto"/>
                        <igDP:Field  Name="Description" Label="Object Description" Width="Auto"/>
                    </igDP:FieldLayout.Fields>
                </igDP:FieldLayout>
            </igDP:XamDataGrid.FieldLayouts>
        </igDP:XamDataGrid>

Ответы [ 3 ]

6 голосов
/ 13 апреля 2012

Я тоже использую шаблон MVVM и пишу так:

<igDP:XamDataGrid ItemsSource={Binding Path=StaffList, Mode=OneWay}>
  ...
  <igDP:XamDataGrid.InputBindings>
    <MouseBinding MouseAction="LeftDoubleClick" 
                  Command="{Binding Path=EditStaffCommand, Mode=OneWay}" 
                  CommandParameter="{Binding Path=DataItem}"/>
  </igDP:XamDataGrid.InputBindings>
  ...
</igDP:XamDataGrid>

Где EditStaffCommand и StaffList - свойства из модели представления

2 голосов
/ 29 марта 2012

Посмотрите на поведение присоединенных команд (http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/). Они позволяют привязывать команды к событиям.

0 голосов
/ 06 апреля 2012

Вы можете создать поведение для добавления привязки между командой ViewModel и событием двойного щелчка сетки.

Для получения дополнительной информации см. Следующий пост:

http://blogs.infragistics.com/forums/p/67749/343013.aspx#343013

...