Я считаю, что сортировка должна быть чем-то отдельным. Вы не должны сортировать модель, потому что хотите сохранить ее как есть. По сути, изменение модели подразумевает повторное отображение представления, и вы, вероятно, этого не хотите (например, если вы хотите анимировать переход между состояниями до и после фильтра).
Что я хотел бы предложить, так это то, что модель предоставляет данные для создания списка визуальных объектов для представления и сортировочного объекта. Сортировщик объекта будет выводить список визуализации, который будет просто списком некоторого идентификатора, связанного с визуальными объектами (индекс в списке объектов или другой). Порядок, в котором отображаются идентификаторы, представляет порядок сортировки, а любой идентификатор, отсутствующий в списке визуализации, скрыт. Каждый раз, когда представление получает список визуализации, оно обновляет свой дисплей.