在WP7中,ListBox.ScrollIntoView()似乎无法工作。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在WP7中,ListBox.ScrollIntoView()似乎无法工作。相关的知识,希望对你有一定的参考价值。
我想在 itemssource 中添加新的项目时,将列表框的滚动条移到底部,但是 ScrollIntoView()
似乎没有任何作用,如果我把新添加的项目的引用或它的索引传递给它。有谁能做到这一点,或者有什么其他的建议来帮助我将列表框向下滚动到底部?
一些代码。
void Actions_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
//if a new item was added, set it to the selected item
if (e.NewItems != null)
{
MainListBox.SelectedIndex = e.NewStartingIndex;
//MainListBox.ScrollIntoView(MainListBox.Items.Last()); //todo: this doesnt seem to work
}
}
MSDN说。
当ItemsSource集合的内容发生变化时,特别是当许多项目被添加到集合中或从集合中删除时,你可能需要在调用ScrollIntoView之前调用UpdateLayout()来让指定的项目滚动到视口。
这可能是你的问题吗?
这就是答案。
http:/dotnet-experience.blogspot.com.es201012wpf-listview-scrollintoview.html。
简而言之:项目是异步加载到ListBox中的,所以如果你在CollectionChanged事件(或类似事件)中调用ScrollIntoView(),它还没有任何项目,所以没有滚动。
希望它能帮到你,它肯定帮助了我!;-)
ScrollIntoView
绝对有效。我只是在一个空的数据绑定应用程序中添加了一个应用程序按钮,在按钮点击时做如下操作,导致列表滚动。
MainListBox.ScrollIntoView(MainListBox.Items.Last());
可能是一个事件的问题 selectionChanged
? 你有什么东西挂在上面吗?如果你不设置选中的项目,ScrollIntoView能不能用?
你可以通过以下方法将新项目始终插入到顶部。
yourItemList.Insert(0, item)。
这样就不需要ScrollIntoView了。也许这能帮到你!
以上是关于在WP7中,ListBox.ScrollIntoView()似乎无法工作。的主要内容,如果未能解决你的问题,请参考以下文章