0
我需要生成一些报告,并且所选格式为FlowDocuments。正如我生成它们直通代码我发现自己所有的时间做这样的事情:如何通过WPF代码以舒适的方式创建FlowDocuments?
list.ListItems.Add(new ListItem(new Paragraph(new Run(string.Format("XXX XXXXXX: {0}", _result.XXX.Count)))));
list.ListItems.Add(new ListItem(new Paragraph(new Run(string.Format("XXX XXXXXX: {0}", _result.XXX())))));
list.ListItems.Add(new ListItem(new Paragraph(new Run(string.Format("XXX XXXXXX: {0}", _result.LossOperations())))));
当我有添加文本单行我必须做一些事情,如:
Paragraph auxParagraph = new Paragraph();
auxParagraph.Inlines.Add("Executing time " + _result.ExecutingTime.ToString());
report.Blocks.Add(auxParagraph);
看起来有点矫枉过正给我。我以正确的方式使用API?我所见到的所有文件都是关于手动创建文档的讨论。也许他们不打算由代码创建,我们应该检查另一种格式?或者也许还有其他更高级别的API使得使用FlowDocuments更简单?
谢谢!
编辑:只是另一个例子与表工作:
foreach (DateTime availableDay in _result.Generator.AvailableDays)
{
Table table = new Table();
table.Columns.Add(new TableColumn());
table.Columns.Add(new TableColumn());
table.Columns.Add(new TableColumn());
table.Columns.Add(new TableColumn());
table.Columns.Add(new TableColumn());
TableRowGroup headers = new TableRowGroup();
TableRow headersRow = new TableRow();
headersRow.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
headersRow.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
headersRow.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
headersRow.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
headersRow.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
headers.Rows.Add(headersRow);
table.RowGroups.Add(headers);
DateTime day = availableDay;
TableRowGroup valuesGroup = new TableRowGroup();
foreach (Operation operation in dailyOperations)
{
TableRow row = new TableRow();
row.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
row.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
row.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
row.Cells.Add(new TableCell(new Paragraph(new Run("XXX XXXX"))));
row.Cells.Add(new TableCell(CreateColoredValue(operation.Result)));
valuesGroup.Rows.Add(row);
}
table.RowGroups.Add(valuesGroup);
result.Blocks.Add(table);
}
当然一些方法进一步驯服它,但是这是怎么了预计将使用框架?看起来有点......嗯......未完成? –
你通常会写XAML ......如果设计师没有这么破碎。 –
嗯,我在运行时生成所有东西,作为向用户显示信息的一种方式。我们认为FlowDocuments是WPF中的自然选择(我们避免使用Crystal,因为所有信息都是在运行时不带数据库的情况下生成的)。也许别的东西会更好? –