Изменение элемента в отсортированном WPF ListView не меняет позицию сортировки этого элемента. - PullRequest
5 голосов
/ 13 февраля 2010

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

Я гуглил его, но не смог найти лучшего решения, чтобы сделать мой просмотр списка идеальным отсортированным видом списка.

Решения ??

1 Ответ

4 голосов
/ 17 февраля 2010

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

Настоящая проблема возникает при изменении элемента после добавления в коллекцию. В этом случае коллекция не пересортируется автоматически.

Я подробно объясняю проблему в «E» для Editable Collection (в моей серии ItemsControl A to Z ). Я также представлю несколько обходных путей, которые предлагают различные уровни производительности. Наиболее радикальным является принудительная повторная сортировка всей коллекции путем вызова функции Refresh () для CollectionView. Если возможно, я бы избегал этого и использовал бы лучший вариант, например, реализацию IEditableObject для ваших элементов и выполнение Edit (), а затем Commit () всякий раз, когда свойства элемента изменяются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...