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