Wpf 如何使XamDataGrid仅在第二次单击时编辑单元格

Wpf 如何使XamDataGrid仅在第二次单击时编辑单元格,wpf,xaml,infragistics,Wpf,Xaml,Infragistics,我有一个InfragisticsXamDataGrid(使用2011.1 WPF),我想模仿文件浏览器(Finder/Windows Explorer)或iTunes的行为,单击一次即可选择一行,第二次单击即可打开字段编辑器。正如我当前定义的那样,单击一次即可立即开始编辑所选行。我这样定义了我的网格: <ig:XamDataGrid> <ig:XamDataGrid.FieldLayoutSettings> <ig:FieldLayoutSe

我有一个Infragistics
XamDataGrid
(使用2011.1 WPF),我想模仿文件浏览器(Finder/Windows Explorer)或iTunes的行为,单击一次即可选择一行,第二次单击即可打开字段编辑器。正如我当前定义的那样,单击一次即可立即开始编辑所选行。我这样定义了我的网格:

<ig:XamDataGrid>
    <ig:XamDataGrid.FieldLayoutSettings>
        <ig:FieldLayoutSettings AutoGenerateFields="False" RecordSelectorLocation="None" />
    </ig:XamDataGrid.FieldLayoutSettings>
    <ig:XamDataGrid.FieldLayouts>
        <ig:FieldLayout>
            <ig:Field Name="Name" Width="*" />
        </ig:FieldLayout>
    </ig:XamDataGrid.FieldLayouts>
</ig:XamDataGrid>

我建议您将XamDataGrid的FieldSettings的CellClickAction设置为选择录制并为CellValuePresenter创建样式,并处理其PreviewMouseLeftButtonDown事件。在处理程序中,您应该检查单击的记录是否处于活动状态,如果是,您可以启动编辑模式。您可以这样定义XamDataGrid:

<igDP:XamDataGrid >
    <igDP:XamDataGrid.Resources>
        <Style TargetType="{x:Type igDP:CellValuePresenter}">
            <EventSetter Event="PreviewMouseLeftButtonDown" Handler="CellValuePresenter_PreviewMouseLeftButtonDown"/>
        </Style>
    </igDP:XamDataGrid.Resources>
    <igDP:XamDataGrid.FieldSettings>
        <igDP:FieldSettings CellClickAction="SelectRecord"/>
    </igDP:XamDataGrid.FieldSettings>
</igDP:XamDataGrid>
此外,我还建议您在遇到与基础设施相关的问题时,向基础设施论坛写信:

因为它更容易跟踪,您将从Infragistics员工那里得到答案

希望这对你有帮助

private void CellValuePresenter_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    if ((sender as CellValuePresenter).Record.IsActive)
    {
        (sender as CellValuePresenter).Editor.StartEditMode();
    }
}