Изменение порядка отображаемых элементов для производного ObservableCollection<T> в ItemsControl в PropertyChange
У меня есть ItemsControl, связанный с отсортированным (через CollectionViewSource) производным ObservableCollection моделей представлений. В моем классе производной коллекции я обрабатываю PropertyChanged на моделях представления. Когда определенное свойство (Порядок) изменилось, мне нужно отобразить элементы управления, чтобы отразить новую отсортированную коллекцию.
Я понимаю, что при обработке PropertyChanged я могу вызвать OnCollectionChanged с указанным действием Reset; однако это приводит к потере внимания к контролю, что нежелательно для моей ситуации.
Есть ли в любом случае, я могу обработать изменение и иметь плавный переход с курсором, остающимся там, где он есть (или в случае с вкладкой, перейти к следующему соответствующему полю).
1 ответ
Что меняет Order
имущество?
Возможно, вы можете рассмотреть возможность реорганизации вашего ItemsControl вместо сортировки и обновления вашего источника.
Я делал это в прошлом с помощью TabControl. Когда пользователь перетаскивает вкладку в новое место, он удаляет фактический элемент TabItem из TabControl и вставляет его в новое место. SelectedTab никогда не менялся, поэтому мне не пришлось беспокоиться об изменении фокуса.