Один из вариантов может состоять в том, чтобы добавить строки в источник данных со специальными значениями для имени и других полей, которые не имеют смысла, и использовать DataTrigger для отображения их со специальными цветами и, возможно, с некоторыми другими.
Фильтрация выполняется в C # в любом случае, поэтому она не влияет на эти строки.
Сортировка - единственная проблема здесь. Было бы здорово просто сказать, что некоторые строки всегда имеют порядок 0 и с порядком 1 в группе. Но я не знаю, как это сделать. Мне нужно сделать обычную сортировку на C # для всех столбцов, а не просто объявлять сортировку:
<CollectionViewSource.SortDescriptions>
<!-- Requires 'xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"' declaration. -->
<scm:SortDescription PropertyName="ProjectName"/>
<scm:SortDescription PropertyName="Complete" />
<scm:SortDescription PropertyName="DueDate" />
</CollectionViewSource.SortDescriptions>
EDIT: Вдобавок ко всему остальное это имеет главный недостаток, сравнимый с мое первое решение (информация о сумме в заголовке группы), потому что при фильтрации изменений я должен обновлять суммы, которые будут вычисляться только для видимых строк.
Таким образом, этот ответ является полным взломом и не обладает всей элегантностью и не использует ничего хорошего функции, которые WPF должен иметь: (