Я использую XAMLWriter для сериализации некоторых элементов управления.Это хорошо работает для других элементов управления, но не для DataGrid.Во-первых, он не может сериализовать столбцы DataGrid, что очень раздражает (если у кого-то есть решение, отлично!), Поэтому мне удается найти обходной путь.Этот код:
DataGrid dataGrid = new DataGrid();
DataGridTextColumn dgTextColumn = new DataGridTextColumn();
dataGrid.Columns.Add(dgTextColumn);
XamlWriter.Save(dataGrid);
Производит этот вывод: <DataGrid />
Нет столбцов вообще! Итак, я понял, что я могу добавить столбцы как элементы:
DataGrid dataGrid = new DataGrid();
DataGridTextColumn dgTextColumn = new DataGridTextColumn();
dataGrid.Items.Add(dgTextColumn);//notice the change
XamlWriter.Save(dataGrid);
И я получил этот вывод, которого мне достаточно:
<DataGrid >
<DataGridTextColumn />
</DataGrid>
Чем я могу вручную добавить <DataGrid.Columns>
и </DataGrid.Columns>
Может кто-нибудь объяснить мне, почему XAMLWriter ведет себя такэто, и есть ли способ успешно сериализовать столбцы DataGrid?