【问题标题】:Grouping groups in a ListView在 ListView 中对组进行分组
【发布时间】:2012-02-03 17:01:31
【问题描述】:

我有一个项目集合,每个项目都在一些组中。 我在 WPF Listview 中显示集合并希望按组进行分组,但这是不可能的,因为我有一个 IEnumerable :-)。而且一行必须不止出现一次。

有人知道我该如何解决这个问题吗?

【问题讨论】:

    标签: c# wpf listview group-by


    【解决方案1】:

    您可以将 DataTemplate 用于内部项目,并在内部数据模板中使用另一个 Listview 来显示该组项目。

    【讨论】:

    • 但是如果我对“主”GridView 进行排序,那么子视图没有排序?以后很难比较吗?
    【解决方案2】:

    最好使用TreeViewHierarchicalDataTemplate 来显示数据结构中的分组级别。

    我不确切知道您的数据结构是什么样的。如果你已经扁平化了数据,你可能需要改变这种数据结构

    public class Item 
    {
        public string Group { get; set; } // A prop you want the grouping on
        public string AnotherItemProp { get; set; } 
    }
    
    public IEnumerable<Item> Items // used as your list source somewhere
    

    到这里:

    public class Group
    {
        public string AnotherGroupProp { get; set; } // grouping value from flattened
        public IEnumerable<Item> Items { get; set; }
    }
    
    public class Item
    {
        public string AnotherItemProp { get; set; }
    }   
    
    public IEnumerable<Group> Groups { get; set; } // Used by treeview
    

    【讨论】:

    • 但我使用 ListView 并在其中使用 GridView 作为 View。这是必要的,因为列,排序等。 Treeview 对我来说是没有选择的,... :-( 还有其他方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2011-07-16
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多