如何在行双击Infragistics WPF数据网格时执行WPF命令?

时间:2012-03-29 14:22:20

标签: xamdatagrid

我有一个WPF XamDataGrid(我正在使用MVVM模式,下面是xaml),我需要它在用户双击一行时在另一个窗口中显示记录详细信息。我有完成工作的命令,但我不知道如何像按钮一样启动它。我希望能够在用户双击一行时执行该命令,因此我需要将双击行(或其ID)作为参数发送给命令。有可能吗?

<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 个答案:

答案 0 :(得分:6)

我也使用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>

EditStaffCommandStaffList - 视图模型中的属性

答案 1 :(得分:2)

查看附加命令行为(http://marlongrech.wordpress.com/2008/12/13/attachedcommandbehavior-v2-aka-acb/)。它们允许将命令绑定到事件。

答案 2 :(得分:0)

您可以创建一个行为,以在ViewModel的Command和Grid的Double Click事件之间添加绑定。

有关详细信息,请参阅以下帖子:

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