WPF ICollectionView组顺序和默认值



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

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

我设置了一个ICollectionView,如下所示:

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

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

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

谢谢。

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

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

或者CollectionView:

具有自定义排序的CollectionViewSource

最新更新