我有需要在多个页面中水平和垂直打印的 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)。
谢谢你的帮助。