2013-04-02 27 views
0

我想保存並恢復WPF應用程序上的列datagrid的大小和順序。 我這個數據存儲在兩個列表:保存一個列表<T>不可串行到一個文件

List<DataGridColumn> 
List<SortDescription> 

的DataGridColumn和SortDescription是MSDN類不serialiable。 我想將這些列表保存在一個文件中(xml或txt ...)

請問最簡單的方法是什麼?

最好的問候, Nixeus

回答

0

將其存儲爲例如

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

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

+0

然後,我需要創建一個serialisable類甚至? –

+0

取決於你正在執行什麼樣的序列化。如果你做一些自定義序列化,你不需要新的類。如果您使用XmlSerializer,您將需要額外的類,您將在其中標記具有XmlElement,XmlAttribute等屬性的成員... – rocky

+0

而且我強烈建議您爲要序列化的成員創建額外的類。 – rocky

3

我強烈建議你不要將其保存爲的DataGridColumnSortDescription列表。

相反,您應該創建自己的輕量級POCO,該技術不可知且包含重新創建列布局所需的數據。因爲這是你自己的數據對象,所以它可以按照你喜歡的方式進行序列化,但更好的是它不直接綁定到Microsoft DataGrid。這樣,如果您換出Microsoft(WPF Extended Toolkit)網格,那麼您的列設置將很容易轉移到您使用的新網格。

當您從存儲數據對象的列表中重新水化數據對象時,您可以遍歷該列表,爲每個數據對象創建一列,並設置適當的列值。

+0

所以最好是保存,寬度和顯示索引? –

+0

@WalterFabioSimoni沒錯。您可能還需要排序方向(none,asc,desc等),可見性(true/false)等。我以前去過那裏,學會了很難的方法:) – slugster

相關問題