我在WPF应用程序中使用XamDataGrid。 XamDataGrid绑定到分层数据源。我使用ExportAsync()方法导出xamDataGrid的数据。它正在导出父级和子级,但我只需要导出父级/顶级数据。如何在导出xamDataGrid时仅导出顶级数据?'
XamDataGrid xamDataGrid = xamGridExporter.AssociatedObject;
if (xamDataGrid.Records.Count > 0)
{
SaveFileDialog saveFileDialog = new SaveFileDialog() { Filter = "Excel2007|*.xlsx|Excel97To2003|*.xls|Excel97To2003Template|*.xlt", DefaultExt = "xls" };
DataPresenterExcelExporter exporter = xamGridExporter.ExporterResource;
if (saveFileDialog.ShowDialog().Equals(DialogResult.OK))
{
WorkbookFormat format = SetWorkBookFormat(Path.GetExtension(saveFileDialog.FileName));
ExportOptions exportOptions = new ExportOptions();
exporter.ExportAsync(xamDataGrid, saveFileDialog.FileName, format, exportOptions);
}
}
我使用上面的代码导出数据。
谢谢, DISHA
答案 0 :(得分:0)
我可以在使用DataPresenterExcelExporter的InitializeRecord事件导出时跳过子记录。 我这个事件检查记录是否是数据记录并且有子节点,然后将e.SkipDescendants设置为true。
static void exporter_InitializeRecord(object sender, InitializeRecordEventArgs e)
{
DataRecord record = e.Record as DataRecord;
if (record != null && record.ParentRecord == null && record.HasChildren)
e.SkipDescendants = true;
}
谢谢, DISHA