Я предполагаю здесь, но я предполагаю, что вы используете этот элемент управления?:
http://thejoyofcode.com/Sortable_ListView_in_WPF.aspx
Если это так, он использует ICollectionView для управления своей сортировкой.ICollectionView очень гибок и позволяет сортировать несколько полей (вы знаете, как в SQL: SORT BY Field1 ASC, Field2 DESC).
Я думаю, вам нужно вставить дополнительное описание сортировки, прежде чем добавлять описание для свойства, выбранного пользователем.Таким образом, он будет сначала сортировать по вашим «помеченным» элементам, а затем по имени выбранного свойства.
(код адаптирован из статьи выше)
private void Sort(string sortBy, ListSortDirection direction)
{
ICollectionView dataView = CollectionViewSource.GetDefaultView(this.ItemsSource);
if (dataView != null)
{
dataView.SortDescriptions.Clear();
dataView.SortDescriptions.Add(new SortDescription("IsAtTop", ListSortDirection.Ascending));
SortDescription sd = new SortDescription(sortBy, direction);
dataView.SortDescriptions.Add(sd);
dataView.Refresh();
}
}
То есть выМне просто нужно добавить свойство bool к вашему объекту под названием IsAtTop.
Надеюсь, это то, что вам нужно ....