我有一个TabControl
,并在它之下,我有几个元素,如TreeView
和DataGrid
。 当我展开树和调整数据网格列,如果我再标签到另一个选项卡,然后回来,整个UI状态被遗忘。 我不得不重新展开树和调整列。
是否有一个合理的和现有的方法来保存UI状态? 让我们分成这一点 -
- 临时(在存储器中),并
- 永久(在磁盘上)。
我有一个TabControl
,并在它之下,我有几个元素,如TreeView
和DataGrid
。 当我展开树和调整数据网格列,如果我再标签到另一个选项卡,然后回来,整个UI状态被遗忘。 我不得不重新展开树和调整列。
是否有一个合理的和现有的方法来保存UI状态? 让我们分成这一点 -
要保存状态可以绑定相关的控制( Width
, Height
, IsSelected
等)属性来你的绑定源的属性(即视图模型在MVVM的情况下),这将自动保存您的temprory状态; 永久保存可序列化的视图模型,并将其保存在磁盘上,显然需要时加载它。
像保存树视图状态,你可以有IsExpanded
和IsSelected
的对象(视图模型),你的属性TreeView
绑定到这样的-
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
您还可以使用项目设置保存应用程序的状态,看看这太问题 -
C# -在一个WPF应用程序中保存用户设置的方法呢?
而这篇文章- 用户设置应用