WP7: ListBox ScrollToTop? - PullRequest
       16

WP7: ListBox ScrollToTop?

0 голосов
/ 30 октября 2010

В приложении Windows Phone 7 Silverlight у меня есть ListBox с большим количеством элементов, которые динамически генерируются из внешнего источника данных. Один из этих элементов будет «текущим», поэтому я хотел бы программно прокрутить ListBox, чтобы этот элемент отображался как самый верхний видимый элемент в ListBox - так что пользователю это не нужно.

Есть

listBox.ScrollIntoView(itemOfInterest);

Но это будет прокручиваться только настолько, что itemOfInterest находится внизу ListBox.

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

Ответы [ 3 ]

5 голосов
/ 31 октября 2010

Это также может быть выполнено довольно простым способом путем прокрутки до последнего элемента, а затем до текущего элемента;

        FirstListBox.ScrollIntoView(FirstListBox.Items[lastItemIndex]);
        FirstListBox.ScrollIntoView(FirstListBox.Items[currentItemIndex]);
2 голосов
/ 30 октября 2010

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

int itemToView=itemOfInterest+numItemsDisplayed;

Вам, конечно, нужно проверить itemToView, чтобы убедиться, что он не выходит за пределы, перед вызовом listBox.ScrollIntoView ().

0 голосов
/ 03 сентября 2013
listboxNews.ScrollIntoView(listboxNews.Items.First());
...