【发布时间】:2014-06-04 12:05:38
【问题描述】:
在我的 windows 8 Metro 应用程序中,我正在使用 GridView(水平滚动),根据客户端的要求之一,我需要将项目(从可观察集合的顶部添加项目)插入到此 gridview 中,以便 GridView 的滚动不向左滚动,但是它的滚动条显示gridview的左侧已经添加了一些项目(滚动条根据添加的项目数量缩小)。
现在发生的事情是(考虑到 GridView 的水平偏移量是 0.0)每当我将项目插入到 gridview 的绑定 ObservableCollection 中时,它会将 gridviewitems 添加到 gridview 当前位置的左侧,而不是增加水平偏移量它实际上跳转到 0 水平再次抵消,这不是要求。当我在左侧插入项目时,如何停止 gridview 的跳转?与将新项目添加到可观察集合末尾时的行为相同,它不会跳转到右端。
希望我已经解释了情况,如果有什么不合理的地方,请帮助并告诉我。
【问题讨论】:
-
哎呀,这是一个棘手的问题。而是一个共同的要求。我期待着答案。同时,我将尝试制定解决方案。我想答案是将一个项目滚动到视图中,但您希望它不会跳转。
-
嘿@Jerry Nixon - MSFT,我几乎解决了这个问题,我所做的如下:我知道有多少项目被添加(插入)到 Collection 的顶部,1-我刚刚计算了 SCROLL一个项目移动的效果和2-乘以添加到顶部的项目数量。 3-然后使用 scrollViewer.ScrollToHorizontalOffset(...calculation result) 并解决了问题,
标签: c# xaml windows-8 microsoft-metro winrt-xaml