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

XamlWriter.Save your caseを使用してDataGrid で DataGridTextColumn をシリアル化できません。

于 2011-04-21T13:25:11.413 に答える
0

列とアイテムは同じものではありません。Items プロパティは、データグリッドのデータ コンテンツ用です。2 番目のコード サンプルでは、​​列を項目として追加しています。

列がシリアル化されない理由と解決策については、以下を参照してください: XamlWriter.Save を使用して DataGrid で DataGridTextColumn をシリアル化できません。

于 2011-04-21T13:08:41.587 に答える