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,因爲所有信息都是在運行時不帶數據庫的情況下生成的)。也許別的東西會更好? –