У меня есть ListView, который пуст в начале. Затем я постоянно добавляю элементы в ListView. В какой-то момент все элементы заполняют всю доступную комнату, и оттуда я хочу прокрутить ListView к только что добавленному элементу.Принесите неиспользуемый ListViewItem в вид
В целом, это может быть выполнено путем звонка ListViewItem.BringIntoView
или ListView.ScrollIntoView(ListViewItem)
.
Однако ListView привязан к элементу ListCollectionView, а Source - это ObservableCollection элементов ViewModel. Итак, я добавляю элементы ViewModel в эту коллекцию. Затем элемент View создается через привязку.
Поскольку элемент находится за пределами видимой области, ListViewItem не создается сразу, а тем более реализуется. Если представление прокрутки близко к нижней части ListView, ListViewItem будет создан и реализован вскоре после этого.
Если прокрутка находится где-то посередине ListView, это не сработает.
Установка IsVirtualizing
на значение false будет исправлять проблему, потому что элемент затем создается и реализуется в любом случае. Но это, очевидно, имеет некоторые недостатки производительности.
Итак, я пытаюсь найти способ, чтобы элемент, только что добавленный в коллекцию, был создан и реализован и, в конечном счете, может быть представлен в поле зрения.
Есть ли у кого-нибудь идеи, как подойти к этой проблеме?
Если вид прокрутки закрыт на дно, он в основном работает, но имеет странное поведение, когда оказывается, что только каждый ListViewItem приводится в поле зрения.
Как вы добавляете новые товары? Каковы их типы? Я имею в виду, они строки? – Ron