如何保存WPF UI状态?(How to save WPF UI state?)

2019-09-18 10:11发布

我有一个TabControl ,并在它之下,我有几个元素,如TreeViewDataGrid 。 当我展开树和调整数据网格列,如果我再标签到另一个选项卡,然后回来,整个UI状态被遗忘。 我不得不重新展开树和调整列。

是否有一个合理的和现有的方法来保存UI状态? 让我们分成这一点 -

  1. 临时(在存储器中),并
  2. 永久(在磁盘上)。

Answer 1:

要保存状态可以绑定相关的控制( WidthHeightIsSelected等)属性来你的绑定源的属性(即视图模型在MVVM的情况下),这将自动保存您的temprory状态; 永久保存可序列化的视图模型,并将其保存在磁盘上,显然需要时加载它。

像保存树视图状态,你可以有IsExpandedIsSelected的对象(视图模型),你的属性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应用程序中保存用户设置的方法呢?

而这篇文章- 用户设置应用



文章来源: How to save WPF UI state?