【问题标题】:Inserting Items in gridview to Left Side also scrolls gridview to Left将gridview中的项目插入到左侧也会将gridview滚动到左侧
【发布时间】: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.ScrollToHorizo​​ntalOffset(...calculation result) 并解决了问题,

标签: c# xaml windows-8 microsoft-metro winrt-xaml


【解决方案1】:

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

据我所知,有多少项目被添加(插入)到 Collection 的顶部,

  1. 我刚刚使用项目的宽度计算了一个项目移动的滚动效果

  2. 乘以添加到顶部的项目数。

  3. 然后使用scrollViewer.ScrollToHorizo​​ntalOffset(...计算结果)

它解决了这个问题

【讨论】:

  • 您的 GridView 行数是否会随着屏幕分辨率的变化而变化?如果是这样,您如何计算新项目的横向影响?
  • 请记住,ScrollToHorizo​​ntalOffset 已被弃用,取而代之的是 ScrollViewer 上的 CHangeView。你可能已经发现了。
  • 当我完成当前项目时,我将在此处发布示例应用程序的链接,(我的截止日期非常紧迫)gridview 是一个无限的gridview,它可以在向左或向右滚动时双向扩展,只是想想显示 Dates 的 Grid 视图,当向右/向左滚动时,它会在两侧添加更多日期,因此不会更改 gridview 行数(实际上主 gridview link 中只有一个 ROW)是的,我知道 ChangeView 但我认为它适用于 8.1 吗?我正在使用 Windows 8。
猜你喜欢
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-20
相关资源
最近更新 更多