问题描述
|
我的问题是我有一个数据绑定的ItemsControl,列表中显示了一些数据,用户可以上下滚动。
将新项目添加到列表时(即用户刷新列表),滚动位置将根据存在的新项目的数量而移动。有没有办法在添加新项目时保持滚动位置?
谢谢
解决方法
如果在ListBoxTombstoner.cs类[1]中查看Codeplex上的TombStone Helper项目,您将找到代码,该代码可让您使用列表框的基础ScrollViewer并获取其VerticalOffset属性。
然后,您可以根据需要操作该属性-如果希望在添加项目时移动滚动位置,则可以添加该属性,也可以保持不变。
[1] http://tombstonehelper.codeplex.com/SourceControl/changeset/view/e737b2a34421#TombstoneHelper%2fListBoxTombstoner.cs
, 尝试在ListBox上设置
IsSynchronizedWithCurrentItem=\"True\"
, 假设所有项目的高度都是固定的,那么添加之后您应该能够调整ScrollOffset,并确保考虑到添加项目的数量。