我正在使用带有数据绑定的WPF FixedDocument来处理简单的发票报告。当在软件内部查看时,它的工作非常完美。
但我想一键打印一系列发票。以下代码工作正常(快速'非常脏,只是在视图模型中直接加载发票,用于测试目的)当我选择XPS编写器时,无法在打印到真实打印机时正确打印。我看不到绑定到报告的数据。所有图形元素(如行)都在那里,但没有数据。 (当我使用相同的按钮打印到de xps writer打印机时,所有数据都存在,并且正确...)
任何想法?
private void ExecutePrintCommand(object sender, ExecutedRoutedEventArgs args)
{
var invs = args.Parameter as IList<object>;
using (CompuDataContext db = new CompuDataContext())
{
DataLoadOptions dl = new DataLoadOptions();
dl.LoadWith<Invoice>(f => f.Invoicelines);
db.LoadOptions = dl;
ReportViewer viewer = new ReportViewer();
PrintDialog dlg = new PrintDialog();
if (dlg.ShowDialog() == true)
{
PrintQueue q = dlg.PrintQueue;
foreach (var o in invs)
{
InvoiceListDisplay inv = o as InvoiceListDisplay;
Invoice invoice = db.Invoices.Single(f => f.Id == inv.Id);
viewer.DataContext = new InvoicePrintViewModel(invoice);
XpsDocumentWriter xpsdw = PrintQueue.CreateXpsDocumentWriter(q);
xpsdw.Write(viewer.Document);
}
}
}
}
答案 0 :(得分:1)
mmkay,所以我在这里找到答案:)
This helped me(任何人都知道背后的'理由'是什么?Bug?)
PS:在一个flowdocument中,我遇到了同样的问题,并且无法在那里解决它。有什么想法吗?