none
不开启缓存,保存视图位置,恢复时没有效果求助! RRS feed

全部回复

  • 代码结构是这样的:

    2012年10月22日 9:52
  • 什么都对,它就是没效果,我擦。
    2012年10月22日 10:02
  •                    求助!
    2012年10月23日 6:55
  • 之前帖中我留的标识的意思是 如果你是从这个页面中点击了Item 导航到下一个页面,则标记一个Bool 成员为True, 然后返回的时候在OnNavigatedTo 中判断这个标记,如果是True的话,说明你不需要重置滚动条,让他读取缓存的位置即可;否则,你就需要重新载入数据,让滚动条恢复到默认开始位置。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年10月23日 7:59
    版主
  • bob,让滚动条恢复到默认开始位置怎么写?

    开启缓存以后,即使重新载入数据,数据是新的,但是缓存位置还是存在。

    2012年10月23日 8:08
  • 这个时候你可以用你原来的代码来设置滚动位置

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年10月23日 8:25
    版主
  • 我不能做到。

    我的写法,调试有值。但是gridview 滚动条就是滚不过去。

    2012年10月24日 3:18
  • 还是误解了。

    我的意思是,滚过去的代码就不用了,开启缓存后默认就会保持滚动条位置。

    只要是从你的页面点击Item到第二个页面,然后后退回来的,通过开启缓存你不用任何代码就可以保持位置。

    但是从其他地方 导航到你的第一个页面的时候,你需要重新加载数据,然后让滚动条移动到 0 位置。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年10月24日 5:27
    版主
  • 开启缓存


    ”只要是从你的页面点击Item到第二个页面,然后后退回来的,通过开启缓存你不用任何代码就可以保持位置。“   (已经实现)

    "但是从其他地方 导航到你的第一个页面的时候,你需要重新加载数据,然后让滚动条移动到 0 位置。"    (重新加载数据,数据是更新的,但是位置不是0,还是缓存保持的位置)


    为了让位置滚到0,我使用了

    1, this->DefaultViewModel->Clear();  清空所有元素

    2,this->DataContext = nullptr; 清空数据

    3,遍历我的IVector ,删除所有填充数据,

         记录位置还在!!!

    尼玛怎么才可以清除记录位置啊?

    是否还有另一个原因:虽然清空了IVector 的数据,需要让界面等待1秒,滚动条才能恢复呢。界面出现的太快,滚动条来不及滑动位置。



    2012年10月24日 6:42
  • 是否还有另一个原因:虽然清空了IVector 的数据,需要让界面等待1秒,滚动条才能恢复呢。界面出现的太快,滚动条来不及滑动位置。
    2012年10月25日 3:29