ViewModel также может отвечать за данные, используемые представлением и его представлением, это модель, которая не должна беспокоиться об отображении данных.
Вы можете связать свое представление с ObservableCollectionViewModel, который, вероятно, уже есть у вас.Вы не говорите, как разрешаете пользователю выполнять сортировку, поэтому для аргументов я предполагаю, что для набора кнопок каждая кнопка будет привязана к ICommand в ViewModel, которая будет изменять ObservableCollection для изменения ее порядка.* Это обновит представление новым порядком в ObservableCollection.
Вы по-прежнему поддерживаете свои слои, избегаете кода и позволяете проверить логику сортировки.