我正在使用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列?
答案 0 :(得分:1)
答案 1 :(得分:0)
列和项目不是一回事。 Items属性用于datagrid的数据内容。在第二个代码示例中,您要将列添加为项目。
请参阅以下说明,了解列未进行序列化的原因以及解决方案:Cannot serialize DataGridTextColumn in DataGrid with XamlWriter.Save