按对象类型的WPF列表框组

时间:2013-12-16 23:42:09

标签: wpf object types listbox grouping

我有一个列表框,它绑定到ViewModel上的ObservableCollection属性。 ObservableCollection用不同类型的对象填充。

然后,我使用不同的DataTemplates根据其类型以不同方式绘制ListboxItem。

我想添加一些分组,以便我可以根据Type输入每个对象组的Listbox。我很乐意使用CollectionViewSource来处理这类事情,但我不确定如何根据对象的类型进行分组。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:3)

虽然您不能使用PropertyGroupDescriptor,因为Type没有属性,您仍然可以创建一个执行该作业的组描述符。实现抽象GroupDescription类,并使用GetType()对其进行分组:

public class TypeGroupDescription : GroupDescription
{
    public override object GroupNameFromItem(object item, int level, CultureInfo culture)
    {
        if (item == null)
            return "";
        return item.GetType().Name;
    }
}