在WPF中持久保存ListView列布局的最佳实践

时间:2009-03-16 18:50:29

标签: wpf listview layout

目标是让用户隐藏/显示/移动/调整列的大小,保存此布局,并在应用重新启动时恢复它。 我先告诉你我是怎么做到的。在GridView.Columns上,我附加到CollectionChanged,以及每个Column.With依赖项属性。当触发任何事件时,我将列的顺序,可见性和宽度保存到专有字符串,并保存到XML设置文件中。 但在我看来,这是一个相当多的手工工作 - 是否有流行的现有组件或实践来保存列布局?

1 个答案:

答案 0 :(得分:2)

你可以在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>