none
请问下,在gridview中,如果一个item移出了可显示区域,会不会有什么消息能通知呢 RRS feed

  • 问题

  •  现在我的GridView中的每一个item都绑定了一个图像资源,如果一次加入多个item,那内存会严重不足,所以喜欢只给显示出来的item绑定图像资源,现在的问题是如果一个item移出了可显示区域,能不能检测到,这样我就能释放绑定的图片了
    2013年3月1日 9:57

答案

  • Hi,

    没有这样的事件可以检测到。我推荐是使用VisualTreeHelper到GridView中找到ScrollViewer的ScrollBar之后监听这个的valuechanged事件就可以了。而且商店应用中也没有自带的能够按需读取并且按需释放的方法,这个需要你自己来写了。不过,感觉很有可能在快速移动的时候会出问题,正常来说使用虚拟化比如VirtualizingStackPanel 基本不会有内存不足的问题。


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年3月4日 8:00
    版主

全部回复

  • Hi,

    没有这样的事件可以检测到。我推荐是使用VisualTreeHelper到GridView中找到ScrollViewer的ScrollBar之后监听这个的valuechanged事件就可以了。而且商店应用中也没有自带的能够按需读取并且按需释放的方法,这个需要你自己来写了。不过,感觉很有可能在快速移动的时候会出问题,正常来说使用虚拟化比如VirtualizingStackPanel 基本不会有内存不足的问题。


    Aaron
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2013年3月4日 8:00
    版主
  • 最好后台数据里面不要存放ImageSource形式的数据,而只存一个uri 直接绑定到界面上,效率最高

    人生就要精彩


    • 已编辑 boypig 2013年3月4日 9:07
    2013年3月4日 9:07