WPF ICollectionView 组顺序和默认值

WPF ICollectionView Group Order and Defaults

我有一个要在 WPF 的 DataGrid 中显示的项目集合。

这些项目有 属性 Status,可以是 ApprovedPendingDraftArchived

我设置了一个ICollectionView如下:

formView = CollectionViewSource.GetDefaultView(Forms);
PropertyGroupDescription groupDescription = new PropertyGroupDescription("Status");
formView.GroupDescriptions.Add(groupDescription);

然后我将此视图绑定到 DataGrid,它正确地分组并显示我的项目。

我的问题是,我需要将已存档放在列表底部,并默认折叠,但我的绑定会自动将其置于其他状态之前。我怎样才能做到这一点?

谢谢。

您可以对源集合进行排序:

var formView = CollectionViewSource.GetDefaultView(Forms.OrderBy(x =>
{
    switch (x.Status)
    {
        case "Archived":
            return 1;
        default:
            return 0;
    }
}));

或者 CollectionView:

CollectionViewSource with custom sort