将列表<t>保存为不可序列化为文件</t>

时间:2013-04-02 09:25:55

标签: c# wpf xml serialization datagrid

我想在WPF应用程序中保存和恢复列datagrid的大小和顺序。 我将这些数据存储在两个列表中:

List<DataGridColumn>
List<SortDescription>

DataGridColumn和SortDescription是MSDN类不可序列化的。 我想将这些列表保存在文件(xml或txt ...)

请问最简单的方法是什么?

祝你好运, Nixeus

2 个答案:

答案 0 :(得分:3)

我强烈建议您不要将其保存为DataGridColumnSortDescription的列表。

相反,您应该创建自己的轻量级POCO,该POCO与该技术无关,并包含重新创建列布局所需的数据。因为这是您自己的数据对象,所以它可以按照您喜欢的方式进行序列化,但更好的是它不直接与Microsoft DataGrid绑定。这样,如果您换掉Microsoft(WPF扩展工具包)网格,那么您的列设置将很容易转移到您使用的新网格。

当您从存储数据对象的列表中重新水化数据对象列表时,您可以简单地遍历列表,为每个数据对象创建一列,并设置适当的列值。

答案 1 :(得分:0)

将其存储为例如

List<Tuple<string, ListSortDirection, int, etc.>> 

其中string是列名,ListSortDirection指定排序方向,int是索引等。您可以轻松地序列化此类型。