如何保存WPF UI状态?
我有一个TabControl
,在它下面我有几个元素,如TreeView
和DataGrid
。 当我展开树并调整数据网格列的大小时,如果我然后切换到另一个选项卡并返回,则忘记整个UI状态。 我必须重新展开树并调整列的大小。
是否有一种合理且现有的方法来保存UI状态? 让我们把它分成 –
- 临时的(在记忆中)和
- 永久的(在磁盘上)。
要保存状态,您可以将相关控件( Width
, Height
, IsSelected
等)属性绑定到绑定源的属性(即MVVM中的ViewModel),这将自动保存您的temprory状态; 为了永久保存,您可以序列化ViewModel并将其保存在磁盘上,并在需要时显然加载它。
就像保存树视图状态一样,您可以在TreeView
绑定的对象(ViewModel)中使用IsExpanded
和IsSelected
属性 –
您还可以使用项目设置来保存应用程序的状态,请查看此SO问题 –
c# – 在WPF应用程序中保存用户设置的方法?
和本文 – 用户设置应用