我有一个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>
答案 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>
EditStaffCommand
和StaffList
- 视图模型中的属性
答案 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