【发布时间】:2012-10-12 12:14:30
【问题描述】:
场景:
- 在 windows Phone 7 中,我使用的是列表框。
- 假设有 200 项。
- 现在我选择列表的第 150 项
- 我希望加载列表并在加载后选择(并显示)列表顶部的第 150 项。
问题:
- 我正在使用本页提到的 HookScrollViewer()(ListBox offset in WP7)
- 第一次加载项目时,列表没有显示正确的项目(比如显示第 148 个项目)。
- 我离开该页面并再次单击第 150 项
- 现在列表索引是正确的,它正好在顶部显示第 150 项。
问题:
- 我是否使用了正确的解决方案?
- 我做错了什么,我试图找出解决方案但失败了!
提示:
- 如果你有windows phone,请下载app:http://tinyurl.com/9298cdx
- 打开任何章节并在章节中间添加书签(通过长按)。
- 关闭应用程序,然后重新打开应用程序。
- 点击书签打开它。
- 第一次它不会去确切的位置。
- 现在不要关闭应用程序,只需按返回按钮并再次单击书签即可。
- 这次位置正确!
- 问题是,第一次有什么问题?
阅读页面的代码:
非常感谢!
【问题讨论】:
-
我检查了 XAML,没有任何问题。我删除了动画,它也不起作用。
-
我为 ScrollViewer 和 ListBox 添加了
UpdateLayout(),但没有帮助。 -
关键是它工作正常,第二次它应该工作,为什么它第一次不工作?有什么我想念的吗?
-
我从未创建过 Windows 手机应用程序,您可以使用 Behaviors 吗?我将创建一个行为并在行为的 OnAttatch() 和 Invoke() 中使用 HookScrollViewer() 中描述的功能,这样即使页面加载它也会被调用,这听起来像是一个很好的解决方案,如果是这样我会写选择器的快速行为 ...
-
谢谢eran,我也是初学者,这是我的第一个移动应用程序,当我开始这个时,我对c#一无所知。因此,我不知道行为是否会解决问题。不过我想试试。请把它写下来,我会试试的。谢谢!
标签: c# windows-phone-7 xaml