«Временно» отключить анимацию добавления / удаления элементов в ListView

#c# #uwp

#c# #uwp

Вопрос:

Как я могу отключить анимацию добавления / удаления в ListView «временно»?

Я хочу отключить ее при возврате на страницу и восстановлении положения ScrollViewer в ListView на этой странице, поскольку анимация изменяет значение VerticalOffset, если я устанавливаю положение ScrollViewer во время события Loaded страницы.

После загрузки страницы и установки положения прокрутки я хочу, чтобы анимация была включена снова.

Ответ №1:

ListView будет анимироваться в начальных элементах после загрузки элемента управления. Итак, вы можете просто сначала очистить переходы контейнера элементов, а затем установить его обратно после загрузки элемента управления.

С именем ListView listView в конструкторе вашей страницы вы можете сделать это:

 listView.ItemContainerTransitions = null;
listView.Loaded  = (s, e) => listView.ClearValue(ItemsControl.ItemContainerTransitionsProperty);
  

Вы можете объединить это в прикрепленное свойство или поведение, если хотите использовать его повторно.