Как избежать автоматического отображения новых элементов ListBox - PullRequest
0 голосов
/ 29 марта 2012

У меня есть список в моем приложении WPF.Когда пользователь прокрутил до вершины и прибывает новый элемент (это ObversableCollection), новый отображается как новый верхний.

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

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Существует метод ScrollIntoView, но он не собирается сохранять позицию только в том случае, если он находится где-то в списке.Если элемент находится ниже, он помещается в последнюю позицию.Так что, если вы поместите «правильный» последний раз в поле зрения, чтобы оттолкнуть кулак, как если бы предмет находился ниже, приведите его в последнюю позицию.У меня есть простой список из 3, и я сделал ListView Height = 40, чтобы в нем оставалось место только для 2. Следующий элемент вытолкнул первый элемент из поля зрения.

lvKDNames.ScrollIntoView (liIDName [2]);

Если Высота = Авто, будет сложнее определить правильный последний элемент, но это возможный подход.

0 голосов
/ 29 марта 2012

Похоже, что вы вставляете новые элементы в верхней части ObservbleCollection, чтобы они отображались в верхней части списка. Если вы добавите их в конец исходного кода, когда они появятся в конце ListBox. Или, если у вас есть какая-то сортировка (например, через CollectionViewSource), вам нужно изменить логику сортировки, чтобы в конце показывать добавленные элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...