我有一个将数据绑定到的ListBox。但是,在将数据绑定到ListBox之后,滚动位置一直在底部。我需要让滚动位置到达顶部。
我在互联网上搜索了一种方法如下。
listBox.ScrollIntoView(lastItemIndex);
listBox.UpdateLayout();
listBox.ScrollIntoView(firstItemIndex);
这种方法按预期工作,但是,当我绑定甚至只有20到30个项目时,listBox.UpdateLayout()调用在我的开发手机上大约需要+4秒(1 GHz Qualcomm,8 GB内部存储器)。
无论如何都可以获得我想要的效果(以编程方式滚动到顶部)而无需如此昂贵的操作?我不能指定如何在绑定时滚动到顶部?
感谢您的帮助。
答案 0 :(得分:3)
listbox.ScrollIntoView(listbox.Items.First());
答案 1 :(得分:2)
回答有关访问内部滚动查看器的上述后续问题 - 请参阅以下答案:
答案 2 :(得分:1)
您需要在ListBox的内部ScrollViewer上调用ScrollToVerticalOffset。