У меня есть свой пользовательский элемент управления, который является сеткой судоку. Он действует как любой элемент управления, например listbox или combobox. Элементы - это ячейки. Элементы привязаны к коллекции этих ячеек. Мое управление автоматическим образом выставляет эту ячейку в сетку (плата 9x9).Печать - как принудительно обновлять файлы?
Когда я размещаю свой элемент управления с товарами, все выглядит хорошо и клетки присутствуют.
Проблема в том, что я пытаюсь распечатать свой элемент управления, используя документ-указатель. Элемент управления печатается, но он пуст, никаких элементов нет. Похоже, что управление нужно как-то перерисовать или уведомить, чтобы обновить себя и загрузить привязанные значения. Любые подсказки, пожалуйста?
Это, как я генерировать свой контроль на лету, прежде чем передать его в документ Paginator ehich используется для размещения нескольких элементов управления на странице:
private UIElement generateGridControl(SudokuFile file, int row, int column)
{
//Contsruct control
View.GridControl.GridControl grid = new View.GridControl.GridControl();
//Create sudoku data from provided file
Grid model = new Grid(file.Type, file.ID);
model.setValues(file.Data);
//Create new viewmodel for my control and inject it to control
grid.init(new GridVM(model), file.Save);
//Set appearance
grid.Width = 500;
grid.Height = 500;
grid.showLabel(true);
//Create viewbox used to stretch control to desired size and wrap it around my usercontrol
System.Windows.Controls.Viewbox box = new System.Windows.Controls.Viewbox
{Stretch = System.Windows.Media.Stretch.Uniform, Child = grid};
System.Windows.Controls.Grid.SetRow(box, row);
System.Windows.Controls.Grid.SetColumn(box, column);
box.Margin = new Thickness(5);
return box;
}
Я вообще не знаю о документе paginator, но я предполагаю, что ваш ViewBox никогда не получит полный цикл макета/рендеринга. Попробуйте 'box.UpdateLayout()' перед возвратом. – Clemens