Hen*_*y C 10 silverlight wpf windows-phone-7
嘿伙计们,每当将一个新项目添加到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
}
}
Run Code Online (Sandbox Code Playgroud)
Jac*_*Jac 33
MSDN说:
当ItemsSource集合的内容发生更改时,特别是如果在集合中添加或删除了许多项目,则可能需要在调用ScrollIntoView之前调用UpdateLayout()以使指定项目滚动到视口中.
这可能是你的问题吗?
这是答案:
http://dotnet-experience.blogspot.com.es/2010/12/wpf-listview-scrollintoview.html
简而言之:项目是异步加载到 ListBox 中的,因此如果您在 CollectionChanged 事件(或类似事件)中调用 ScrollIntoView() ,它将不会有任何项目,因此不会滚动。
希望它有帮助,它肯定对我有帮助!;-)
| 归档时间: |
|
| 查看次数: |
10607 次 |
| 最近记录: |