2016-07-21 4 views
0

WPF 응용 프로그램에서 XamDataGrid를 사용하고 있습니다. XamDataGrid는 계층 적 데이터 소스에 바인딩됩니다. ExportAsync() 메서드를 사용하여 xamDataGrid에 대한 데이터를 내보내고 있습니다. 부모 및 자식 수준을 내보내는 중 부모/최상위 수준의 데이터 만 내 보내야합니다. 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

나는 수출에 사용되는 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

관련 문제