我想保存並恢復WPF應用程序上的列datagrid的大小和順序。 我這個數據存儲在兩個列表:保存一個列表<T>不可串行到一個文件
List<DataGridColumn>
List<SortDescription>
的DataGridColumn和SortDescription是MSDN類不serialiable。 我想將這些列表保存在一個文件中(xml或txt ...)
請問最簡單的方法是什麼?
最好的問候, Nixeus
我想保存並恢復WPF應用程序上的列datagrid的大小和順序。 我這個數據存儲在兩個列表:保存一個列表<T>不可串行到一個文件
List<DataGridColumn>
List<SortDescription>
的DataGridColumn和SortDescription是MSDN類不serialiable。 我想將這些列表保存在一個文件中(xml或txt ...)
請問最簡單的方法是什麼?
最好的問候, Nixeus
將其存儲爲例如
List<Tuple<string, ListSortDirection, int, etc.>>
其中string是列名,ListSortDirection指定排序方向,int是索引等。您可以輕鬆地序列化此類型。
我強烈建議你不要將其保存爲的DataGridColumn
或SortDescription
列表。
相反,您應該創建自己的輕量級POCO,該技術不可知且包含重新創建列布局所需的數據。因爲這是你自己的數據對象,所以它可以按照你喜歡的方式進行序列化,但更好的是它不直接綁定到Microsoft DataGrid。這樣,如果您換出Microsoft(WPF Extended Toolkit)網格,那麼您的列設置將很容易轉移到您使用的新網格。
當您從存儲數據對象的列表中重新水化數據對象時,您可以遍歷該列表,爲每個數據對象創建一列,並設置適當的列值。
所以最好是保存,寬度和顯示索引? –
@WalterFabioSimoni沒錯。您可能還需要排序方向(none,asc,desc等),可見性(true/false)等。我以前去過那裏,學會了很難的方法:) – slugster
然後,我需要創建一個serialisable類甚至? –
取決於你正在執行什麼樣的序列化。如果你做一些自定義序列化,你不需要新的類。如果您使用XmlSerializer,您將需要額外的類,您將在其中標記具有XmlElement,XmlAttribute等屬性的成員... – rocky
而且我強烈建議您爲要序列化的成員創建額外的類。 – rocky