Печать Динамического Usercontrol с помощью документа paginator в WPF: Datagrid печатается пустой

Я пытаюсь распечатать wpf документ. Я использую documentpaginator для разбиения на страницы и пользовательского элемента управления для создания фактический визуальный для печати. Мой пользовательский элемент управления имеет немного текстовых полей и datagrid, связанный с объектами данных, которые передаются пользовательскому элементу управления во времени выполнения.

Теперь код работает отлично при печати к документу XPS, но когда он печатает к физическому принтеру, мой datagrid печатается пустой, хотя другие текстовые поля печатают отлично.

Ниже код для paginator класса Метод GetPage:

  SaleOrderPage page = new SaleOrderPage(order, pageNumber, controlSize);
        page.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
        page.Arrange(new Rect(new Point(0, 0), PageSize));
        page.InitPrint();
        page.UpdateLayout();

        return new DocumentPage(page);

Метод InitPrint инициализирует мой datagrid и связывает его с источником данных. Вот код для метода InitPrint.

 public void InitPrint() {
        var sales = ctx.SalesOrders.Where(so => so.Id.Equals(order.Id)).First().Sales.Skip(pageNumber * PageRows).Take(PageRows);
        var printData = sales.Select(x => new {
            Particulars = string.Format("{0} - {1}", x.Item.Brand.Name, x.Item.Shade.Name),
            Quantity = string.Format("{0} {1}", x.Quantity, x.Item.Brand.Unit.Symbol)
        }).ToList();

        dgSales.ItemsSource = printData;
        dgSalesCopy.ItemsSource = printData;
    }

Я полагаю, что пропускаю некоторый шаг при печати к реальному принтеру, потому что он работает как ожидалось к принтеру XPS, но не к физическому принтеру.

Спасибо за чтение вопроса,

Naveen

10
задан Naveen 3 August 2010 в 11:56
поделиться