有關於保存/加載ListView控件的列狀態的最佳做法嗎?我想記住列的順序和大小,以便ListView始終保持爲用戶定製它的狀態。是否有一些內置的方式來序列化/反序列化ListView列的寬度和順序?我無法在Google上找到答案。堅持列表視圖列順序
2
A
回答
0
ObjectListView - 圍繞.NET的WinForms ListView的一個開放源代碼的包裝 - 有方法,堅持ListView控件的狀態。看看SaveState()
和RestoreState()
方法。
一般的策略是:
- 創建包含
ListView
的狀態的對象。 - 序列化對象使用格式化,以一系列字節
- 的持久化的字節序列
- 恢復的時候,再次使用格式化的字節膨脹到你的狀態對象。
- 從狀態對象恢復
ListView
的狀態
要序列化的狀態對象,你需要這樣的事:
using (MemoryStream ms = new MemoryStream()) {
BinaryFormatter serializer = new BinaryFormatter();
serializer.AssemblyFormat = FormatterAssemblyStyle.Simple;
serializer.Serialize(ms, listViewState);
return ms.ToArray();
}
要恢復狀態:
using (MemoryStream ms = new MemoryStream(state)) {
BinaryFormatter deserializer = new BinaryFormatter();
ListViewState listViewState;
try {
listViewState = deserializer.Deserialize(ms) as ListViewState;
} catch (System.Runtime.Serialization.SerializationException) {
return false;
}
// Restore state here
}
唯一棘手的問題是恢復列的順序。 DisplayIndex
是臭名昭着的挑剔。
1
沒有內置的方式。提取數據並以對您的應用程序有意義的方式保存它。
配置設置通常是最簡單的。
Best practice to save application settings in a Windows Forms Application
相關問題
- 1. 序列化列表堅持XML
- 2. Mvc4堅持jQuery排序列表項的順序到控制器
- 3. 如何堅持jfx表格列的排序順序
- 4. 堅持一系列圖像
- 5. 列表視圖按名稱順序
- 6. 列表視圖按字母順序
- 7. 使WPF列表視圖堅持Windows主題
- 8. Asp.Net MVC 3 - 堅持通過不同的視圖列表
- 9. 我想改變列表視圖的列表的順序
- 10. 休眠不保持堅持順序
- 11. 列表視圖列排序
- 12. 在列表視圖中獲取列順序
- 13. 如何在兩個列表視圖中同步列順序?
- 14. 順序列表
- 15. 保持列表的順序node.js
- 16. 堅持序列化對象的學說
- 17. Doctrine2 - 如何堅持集合的順序?
- 18. 堅持EventListener的這一問題列表
- 19. Linq沒有堅持添加列表?
- 20. 可嵌入實體的堅持列表
- 21. 使用JPA堅持1列表
- 22. 堅持與JPA2接口類型列表
- 23. 列表不是堅持通過updatemodel
- 24. PouchDB數據視圖按順序排列
- 25. 我堅持串和陣列
- 26. JodaTime堅持DateTime多列
- 27. Redis - 堅持個人散列
- 28. 堅持更新列值
- 29. 按字母順序排序列表視圖
- 30. 如何按字母順序排序我的列表視圖?