我正在使用 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 列?