4

我有一个 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>
4

3 回答 3

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>

WhereEditStaffCommandStaffList- 来自视图模型的属性

于 2012-04-13T10:01:09.040 回答
2

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

于 2012-03-29T14:31:02.617 回答
0

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

有关更多信息,请参阅以下帖子:

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

于 2012-04-05T20:44:48.217 回答