PrintableDataGridCell.xaml の相互作用ロジック
Inheritance: UserControl
        void AddHeaderCell(int columnIndex)
        {
            var column = Columns[columnIndex];
            var cell   =
                new PrintableDataGridCell()
            {
                Content                 = column.Header,
                ContentTemplate         = column.HeaderTemplate,
                ContentTemplateSelector = column.HeaderTemplateSelector,
            };

            Grid.SetRow(cell, 0);
            Grid.SetColumn(cell, columnIndex);
            grid.Children.Add(cell);
        }
        void AddRowCell(int rowIndex, int columnIndex, object dataContext)
        {
            var column = Columns[columnIndex];
            var cell   =
                new PrintableDataGridCell()
            {
                ContentTemplate         = column.CellTemplate,
                ContentTemplateSelector = column.CellTemplateSelector,
                DataContext             = dataContext,
            };

            cell.SetBinding(ContentProperty, column.CellBinding);

            var cellStyle = column.CellStyle;

            if (cellStyle != null)
            {
                cell.Style = cellStyle;
            }

            Grid.SetRow(cell, rowIndex);
            Grid.SetColumn(cell, columnIndex);
            grid.Children.Add(cell);
        }