在ListView中对组进行分组

时间:2012-02-01 08:53:36

标签: c# wpf listview group-by

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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

最好使用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