我的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)。
感谢您的帮助。