3

我有需要在多个页面中水平和垂直打印的 DataGrid。基于详尽的搜索,我找到的最接近的解决方案是@ http://www.codeproject.com/Articles/138233/Custom-Data-Grid-Document-Paginator。但是,如果打印具有 ComboBox 作为其内容的 DataGridTemplateColumn,则生成的打印输出是空白组合框。下面是打印的截图,

http://www.filedropper.com/datagridprint

下面是用于在打印时创建模板列的代码,

private FrameworkElement GetTableCell(Grid grid, DataGridColumn column, object item, int columnIndex, int rowIndex)
    {
        FrameworkElement visualElement = null;
        if (column is DataGridTemplateColumn)
        {
            DataGridTemplateColumn templateColumn = column as DataGridTemplateColumn;
            ContentControl contentControl = new ContentControl();
            contentControl.Focusable = true;
            contentControl.ContentTemplate = templateColumn.CellTemplate;
            contentControl.Content = item;

            contentControl.SetValue(Grid.ColumnProperty, columnIndex);
            contentControl.SetValue(Grid.RowProperty, rowIndex);

            visualElement = contentControl;
        }

上面的代码基本上是新建了内容控件,并将与网格关联的CellTemplate添加到新创建的内容中,是行不通的。我想知道上面的代码是否有修复,如果没有,是否有一个可行的解决方案可以将 DataGrid 打印到多个页面(WYSIWYG)。

谢谢你的帮助。

4

0 回答 0