在WP7.1中ListBox选择的索引似乎没有按预期工作。如何在顶部显示选定项目?

时间:2012-10-12 12:14:30

标签: c# windows-phone-7 xaml

情景:

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

问题:

  • 我正在使用本页提到的HookScrollViewer()ListBox offset in WP7
  • 第一次加载项目时,列表没有显示正确的项目(比如显示第148项)。
  • 我离开该页面并再次点击第150项
  • 现在列表索引是正确的,它显示在顶部的第150个项目。

问题:

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

提示:

  • 如果您有Windows手机,请下载应用:http://tinyurl.com/9298cdx
  • 打开任何章节并在章节中间标记(通过长按)。
  • 关闭应用程序,然后再次打开该应用程序。
  • 点击书签将其打开。
  • 第一次不会到达确切的位置。
  • 现在不要关闭应用程序,只需按下后退按钮并再次单击书签。
  • 这次的位置是正确的!
  • 问题是,第一次出了什么问题?

阅读页码:

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

实际问题:

  • 我使用的是外部字体,默认情况下不包含在WP中。
  • 外部字体需要一些时间才能加载到内存中,然后显示文本。
  • 同时加载列表时,列表已加载。
  • 最后显示文本,(可能是因为扩展),所选索引位置向下移动。
  • 在不关闭应用程序的情况下,字体似乎留在内存中,下次不需要很长时间,并且指针ID显示正确。

我的解决方案:

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

我希望任何建筑师能够更好地解释已发生的事情,换句话说,我有兴趣了解“实际问题”的技术背景。

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

答案 1 :(得分:0)

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