8

设想:

  • 在 Windows Phone 7 中,我使用的是列表框。
  • 假设有 200 个项目。
  • 现在我选择列表的第 150 项
  • 我希望列表在加载后加载并选择(并显示)列表顶部的第 150 个项目。

问题:

  • 我正在使用本页提到的 HookScrollViewer()(WP7 中的 ListBox 偏移
  • 第一次加载该项目时,列表未显示正确的项目(例如显示第 148 个项目)。
  • 我离开该页面并再次单击第 150 项
  • 现在列表索引是正确的,它正好在顶部显示第 150 个项目。

问题:

  • 我使用正确的解决方案吗?
  • 我在做什么错了,我试图找出解决方案但失败了!

暗示:

  • 如果你有windows phone,请下载app:http ://tinyurl.com/9298cdx
  • 打开任何章节并在章节中间添加书签(通过长按)。
  • 关闭应用程序,然后再次打开应用程序。
  • 单击书签将其打开。
  • 第一次它不会去确切的位置。
  • 现在不要关闭应用程序,只需按返回按钮并再次单击书签。
  • 这次位置正确!
  • 问题是,第一次有什么问题?

阅读页面的代码:

非常感谢!

4

2 回答 2

1

经过努力,我找到了实际问题及其解决方案。

实际问题:

  • 我正在使用外部字体,而不是默认包含在 WP 中的字体。
  • 外部字体需要一些时间才能加载到内存中,然后显示文本。
  • 与此同时,列表已经加载,而字体正在加载。
  • 最后显示文本,并且(可能是因为扩展),选定的索引位置向下移动。
  • 不用关闭app,字体好像还停留在内存中,下次用不了多久,指针id就正确显示了。

我的解决方案:

  • 我在加载主页时加载了(外部)字体。它花费的时间可以忽略不计,因此不会影响应用程序的效率(就加载时间而言)

我希望任何架构师可以更好地解释发生了什么,或者换句话说,我有兴趣了解“实际问题”的技术背景。

非常感谢所有提出建议的人。

于 2012-10-19T13:21:39.630 回答
0

我猜您的数据没有更新。您可以尝试使用 INotifyPropertyChanged ,看看示例您将了解如何使用

于 2012-10-18T09:44:21.040 回答