wpf - 在 WPF 中保留 ListView 列布局的最佳实践

标签 wpf listview layout

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

最佳答案

您可以将列保存在 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>

在调整大小并移动一些之后,我调用了 XamlWriter.SaveGridView.Columns 上得到这个:

<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>

关于wpf - 在 WPF 中保留 ListView 列布局的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651683/

相关文章:

android - 我可以强制使用特定的布局方向,但键盘方向相反吗?安卓

c# - WPF Datagrid 列宽最大化时调整大小

c# wpf dispatcher.beginInvoke 卡住

layout - 是否需要 go 才能使用包

android - setOnFocusChangeListener - 在每个字符后触发

android - 在 ViewPager 的 fragment 内滑动 ListView 47deg

php - 如何从公共(public)布局文件中的数据库获取和显示数据并显示在 laravel 5.2 中的所有 View 上

WPF:水平对齐

wpf - XAML 中从形状到路径的转换

javascript - 在 HTML 中显示可编辑列表(如电子表格)的最简单方法是什么?