我有一个TabControl
在它下面我有几个元素,例如TreeView
and DataGrid
。当我展开树并调整数据网格列的大小时,如果我然后切换到另一个选项卡并返回,整个 UI 状态都会被忘记。我必须重新展开树并调整列的大小。
是否有一种合理且现有的方法来保存 UI 状态?让我们把它分为——
- 临时(在内存中)和
- 永久(在磁盘上)。
要保存状态,您可以绑定相关控件(Width
, Height
, IsSelected
等)属性到您的绑定源的属性(即 MVVM 中的 ViewModel),这将自动保存您的临时状态;为了永久保存,您可以序列化 ViewModel 并将其保存在磁盘上,并在需要时加载它。
就像保存你可以拥有的树视图状态一样IsExpanded
and IsSelected
您的对象(ViewModel)中的属性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 应用程序中保存用户设置的方法? https://stackoverflow.com/questions/3784477/c-sharp-approach-for-saving-user-settings-in-a-wpf-application/3784591#3784591
以及这篇文章——应用的用户设置 http://www.codeproject.com/Articles/25829/User-Settings-Applied
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)