关于ListView、GridView滚动条定位到选中的那一条内容

在上一篇关于ScrollViewer的文章中,讲到了怎么进行ScrollViewer的定位问题,这里来介绍ListView、

ScrollViewer的定位问题:

      以ListView为例:

      我们在做开发中,通常会有这么一个需求:

      场景一:从A页面跳转到B(有一个ListView绑定了一组数据)页面,A页面传入了某一参数,B页面根据传入的参数,ListView的滚动条要定位到某一位置。

      场景二:这个场景和上篇文章关于ScrollViewer的定位问题中有讲到,就是当你动态的对ListView增加一条数据时,ListView(该ListView此时不被ScrollViewer包裹)的滚动条也动态的显示到最底部。

     也许很多人都知道实现的方式,很简单,就一句代码:

       ListView.ScrollIntoView(ListView.SelectedItem);

      对于很多刚接触metro开发的人,相信都会在针对ListView设置SelectedItem执行上面这句代码,希望是美好

的,但是结局往往是惨不忍睹的,执行后发现没起作用吧。其实原因很简单,在你进行SelectedItem操作时,或者往ListView动态添加数据时,ListView的container并不是马上重新生成,因此在这边执行是无效的。那要在哪里执行才能生效呢,其实也是一样的,在SizeChanged Event中执行就可以了:

        private void ListView_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            ListView.ScrollIntoView(ListView.SelectedItem);
        }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值