C# 将gridview中的项目插入左侧也会将gridview向左滚动

C# 将gridview中的项目插入左侧也会将gridview向左滚动,c#,xaml,windows-8,microsoft-metro,winrt-xaml,C#,Xaml,Windows 8,Microsoft Metro,Winrt Xaml,在我的windows 8 metro应用程序中,根据客户端的一个要求,我使用GridView水平滚动,我需要将项目从observable集合的顶部添加到这个gridview中,这样gridview的滚动条就不会向左滚动,但它的滚动条会显示一些项目已经添加到gridview的左侧滚动条会根据添加的项目数收缩 现在发生的事情是考虑到GridView的水平偏移量是0.0每当我将项插入GridView的绑定ObservableCollection时,它会将gridviewitems添加到GridView

在我的windows 8 metro应用程序中,根据客户端的一个要求,我使用GridView水平滚动,我需要将项目从observable集合的顶部添加到这个gridview中,这样gridview的滚动条就不会向左滚动,但它的滚动条会显示一些项目已经添加到gridview的左侧滚动条会根据添加的项目数收缩

现在发生的事情是考虑到GridView的水平偏移量是0.0每当我将项插入GridView的绑定ObservableCollection时,它会将gridviewitems添加到GridView当前位置的左侧,而不是增加水平偏移量,它实际上会再次跳到0水平偏移量,这不是必需的。在左侧插入项目时,如何停止gridview的跳转?与将新项添加到可观察集合末尾时的行为相同,它不会跳到右端


希望我已经解释了情况,如果有任何不合理的地方,请帮助并让我知道。

我几乎解决了这个问题,我所做的如下:

据我所知,有多少物品被添加到了收藏的顶部

我刚刚用物品的宽度计算了一次物品移动的滚动效果

将其与添加到顶部的项目数相乘

然后使用scrollViewer.ScrollToHorizontalOffset…计算结果


它解决了这个问题

Yikes,这是一个棘手的问题。但这是一个共同的要求。我期待着答案。与此同时,我将设法想出一个解决办法。我想答案是将一个项目滚动到视图中,但你希望它不跳跃地发生。嘿@Jerry Nixon-MSFT,我几乎解决了这个问题,我所做的如下:我知道有多少项目添加到了收藏的顶部,1-我刚刚计算了一个项目移动的滚动效果,2-乘以添加到顶部的项目数。3-然后使用scrollViewer.ScrollToHorizontalOffset…计算结果并解决了问题,您的GridView行数是否随屏幕分辨率的变化而变化?如果是这样,您如何计算新项目的水平影响?请记住,ScrollToHorizontalOffset是不推荐使用的,而ScrollViewer上的CHangeView更受欢迎。你可能已经发现了。当我完成当前项目时,我会在这里发布示例应用程序的链接,我在非常紧迫的最后期限上gridview是一个无限的gridview,在向左或向右滚动时向两个方向扩展,只要想想显示日期的Grid view,当向右/向左滚动时,它会向两侧添加更多的日期,因此不会更改gridview行数实际上主gridview中只有一行是的,我知道关于ChangeView,但我认为它适用于8.1?我正在使用Windows8。