Сохранить позицию в scrollviewer - PullRequest
4 голосов
/ 29 мая 2011

Моя проблема в том, что у меня есть ItemsControl с данными, в котором некоторые данные представлены в списке, и пользователь может прокручивать вверх и вниз.

При добавлении новых элементов в список (т. Е. Пользователь обновляет список), позиция прокрутки перемещается в соответствии с тем, сколько новых элементов существует. Есть ли способ сохранить положение прокрутки при добавлении новых элементов?

Спасибо

Ответы [ 3 ]

1 голос
/ 11 июля 2011

Если вы посмотрите на проект TombStone Helper на Codeplex в классе ListBoxTombstoner.cs [1], вы найдете код, который позволит вам получить доступ к базовому ScrollViewer для списка и получить его свойство VerticalOffset.

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

[1] http://tombstonehelper.codeplex.com/SourceControl/changeset/view/e737b2a34421#TombstoneHelper%2fListBoxTombstoner.cs

0 голосов
/ 30 мая 2011

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

0 голосов
/ 29 мая 2011

Попробуйте установить IsSynchronizedWithCurrentItem="True" в ListBox

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