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

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

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

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

1 Ответ

1 голос
/ 19 мая 2011

Что меняет свойство Order?

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

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

...