在ListView中对组进行分组

本文关键字:ListView | 更新日期: 2023-09-27 18:22:01

我有一个项目集合,每个项目都在一些组中。我在WPF列表视图中显示集合,并希望按组分组,但这是不可能的,因为我有一个IEnumerable:-)。而且争吵不止一次。

有人知道我该怎么解决这个问题吗?

在ListView中对组进行分组

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

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

我不知道你的数据结构到底是什么样子。如果你已经压平了数据,你可能需要改变这种数据结构

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