导出仅绑定到分层数据源的xamDataGrid时,仅导出顶级数据

时间:2016-07-21 07:23:32

标签: export export-to-excel hierarchical-data xamdatagrid

我在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

1 个答案:

答案 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

相关问题