Прокрутите вниз до нового элемента.Мой метод зависает - PullRequest
0 голосов
/ 26 августа 2010

У меня есть ListView, который обновляется часто, с нерегулярными интервалами.

Я хочу, чтобы при получении обновления элемент прокручивался в поле зрения.

Я знаю код для этого:

logListView.ScrollIntoView(logListView.Items[logListView.Items.Count - 1]);

Я не знаю, где его разместить, чтобы это произошло при обновлении ListView.

I 'мы пытались поместить его в обработчик событий LayoutUpdated ListView, но когда я пытаюсь прокрутить в течение периода, когда нет обновлений (я знаю, что обновлений нет, потому что я отключил прокачку сообщений), представлениезастрял на дне.Я предполагаю, что это потому, что прокрутка вызывает событие LayoutUpdated.

Как мне заставить ListView прокручиваться вниз, когда он получает новый элемент?

1 Ответ

2 голосов
/ 26 августа 2010

Посмотрите на ответ на WPF ListBox Прокрутите, когда элемент добавлен . Свойство Items является ItemCollection, которое реализует INotifyCollectionChanged, поэтому вы можете использовать событие CollectionChanged. Он должен работать как для ListView, так и для ListBox, но если вы используете ScrollIntoView, то я подозреваю, что у вас все равно есть ListBox.

INotifyCollectionChanged collection = logListView.Items;
collection.CollectionChanged += collection_CollectionChanged;
...