WPF — ICollectiView SortDescriptions — Сортировка по строке, но игнорирование nullorwhitespace?

#wpf #nssortdescriptor #string #icollectionview

#wpf #nssortdescriptor #строка #icollectionview

Вопрос:

В принципе, у меня есть коллекция элементов. Я хочу выполнить сортировку по свойству String. Проблема в том, что любая пустая строка отображается вверху списка, когда я делаю по возрастанию…

 ICollectionView view = CollectionViewSource.GetDefaultView(MyCollection);
view.SortDescriptions.Add(new SortDescription("MyProperty", ListSortDirection.Ascending));
  

Результирующий список:

«» (Строка.Пусто)
«» (Строка.Пусто)
«» (Строка.Пусто)
A

B

C

D

Должен ли я создавать свой собственный класс SortDescription или что-то в этомроде?

Комментарии:

1. Можете ли вы добавить в свой класс другое свойство, которое возвращало бы правильный ключ сортировки?

2. Я действительно не хочу возиться с самим дизайном объекта, более того, я надеялся на решение, которое можно применять повсеместно, поскольку у меня есть много-много типов объектов.

3. @michael: Ну, такого рода проблемы — это именно то, для чего предназначен MVVM. Создайте несколько viewmodels поверх ваших объектов, придайте им необходимые свойства.

4. @Fyodor: За исключением того, что я не хочу сортировать свои элементы в ViewModel. Моя ViewModel не должна заботиться или обслуживать тот конкретный вид, который ее использует. С другой стороны, мой взгляд хочет взять переданную ему коллекцию и отсортировать ее определенным образом.

5. @michael: Такого рода вещи — ЭТО КАК РАЗ работа ViewModel. Хотя я бы точно не стал выполнять саму сортировку в ViewModel. Я бы просто предоставил ключ сортировки как отдельное свойство.