1

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

4

2 回答 2

1

我想这是:Cannot serialize DataGridTextColumn in DataGrid with XamlWriter.Save your case。

于 2011-04-21T13:25:11.413 回答
0

列和项目不是一回事。Items 属性用于数据网格的数据内容。在您的第二个代码示例中,您将列添加为项目。

有关未序列化列的解释和解决方案,请参见以下内容:Cannot serialize DataGridTextColumn in DataGrid with XamlWriter.Save

于 2011-04-21T13:08:41.587 回答