询问者
不开启缓存,保存视图位置,恢复时没有效果求助!

问题
-
RTM
demo代码请猛戳这这里下载:https://skydrive.live.com/?cid=B52D1CB26350F786&id=B52D1CB26350F786%21122
这是保存位置
不能恢复到点击的位置,求助!
- 已编辑 英明神武可爱 2012年10月22日 10:06
全部回复
-
之前帖中我留的标识的意思是 如果你是从这个页面中点击了Item 导航到下一个页面,则标记一个Bool 成员为True, 然后返回的时候在OnNavigatedTo 中判断这个标记,如果是True的话,说明你不需要重置滚动条,让他读取缓存的位置即可;否则,你就需要重新载入数据,让滚动条恢复到默认开始位置。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
-
这个时候你可以用你原来的代码来设置滚动位置
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
-
还是误解了。
我的意思是,滚过去的代码就不用了,开启缓存后默认就会保持滚动条位置。
只要是从你的页面点击Item到第二个页面,然后后退回来的,通过开启缓存你不用任何代码就可以保持位置。
但是从其他地方 导航到你的第一个页面的时候,你需要重新加载数据,然后让滚动条移动到 0 位置。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
-
开启缓存
”只要是从你的页面点击Item到第二个页面,然后后退回来的,通过开启缓存你不用任何代码就可以保持位置。“ (已经实现)"但是从其他地方 导航到你的第一个页面的时候,你需要重新加载数据,然后让滚动条移动到 0 位置。" (重新加载数据,数据是更新的,但是位置不是0,还是缓存保持的位置)
为了让位置滚到0,我使用了
1, this->DefaultViewModel->Clear(); 清空所有元素
2,this->DataContext = nullptr; 清空数据
3,遍历我的IVector ,删除所有填充数据,
记录位置还在!!!
尼玛怎么才可以清除记录位置啊?
是否还有另一个原因:虽然清空了IVector 的数据,需要让界面等待1秒,滚动条才能恢复呢。界面出现的太快,滚动条来不及滑动位置。
- 已编辑 英明神武可爱 2012年10月25日 3:28