Изменение порядка отображаемых элементов для производного ObservableCollection<T> в ItemsControl в PropertyChange

У меня есть ItemsControl, связанный с отсортированным (через CollectionViewSource) производным ObservableCollection моделей представлений. В моем классе производной коллекции я обрабатываю PropertyChanged на моделях представления. Когда определенное свойство (Порядок) изменилось, мне нужно отобразить элементы управления, чтобы отразить новую отсортированную коллекцию.

Я понимаю, что при обработке PropertyChanged я могу вызвать OnCollectionChanged с указанным действием Reset; однако это приводит к потере внимания к контролю, что нежелательно для моей ситуации.

Есть ли в любом случае, я могу обработать изменение и иметь плавный переход с курсором, остающимся там, где он есть (или в случае с вкладкой, перейти к следующему соответствующему полю).

1 ответ

Решение

Что меняет Order имущество?

Возможно, вы можете рассмотреть возможность реорганизации вашего ItemsControl вместо сортировки и обновления вашего источника.

Я делал это в прошлом с помощью TabControl. Когда пользователь перетаскивает вкладку в новое место, он удаляет фактический элемент TabItem из TabControl и вставляет его в новое место. SelectedTab никогда не менялся, поэтому мне не пришлось беспокоиться об изменении фокуса.

Другие вопросы по тегам