目标是让用户隐藏/显示/移动/调整列,保存此布局,并在应用程序重新启动时能够恢复它。
首先我会告诉您我如何做到这一点。对于GridView.Columns,我附加了CollectionChanged事件以及每个Column.With的依赖属性。当任何事件被触发时,我将列的顺序、可见性和宽度保存到专有字符串中,并将其保存到XML设置文件中。
但我觉得这是相当繁琐的工作-是否存在流行的现有组件或实践来保存列布局?
您能在XAML中保存列吗?经过快速测试,似乎可以保存相关信息。我从这里开始:
<GridView>
<GridView.Columns>
<GridViewColumn Header="First Name" DisplayMemberBinding="{Binding FirstName}"/>
<GridViewColumn Header="Last Name" DisplayMemberBinding="{Binding LastName}"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}"/>
</GridView.Columns>
</GridView>
在调整大小和移动一些列之后,我调用了GridView.Columns
上的XamlWriter.Save
,结果如下:
<GridViewColumnCollection xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<GridViewColumn Width="108.51" DisplayMemberBinding="{Binding Path=FirstName}">First Name</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Age}">Age</GridViewColumn>
<GridViewColumn Width="83.8533333333333" DisplayMemberBinding="{Binding Path=LastName}">Last Name</GridViewColumn>
</GridViewColumnCollection>