首页 新闻 会员 周边

在Silverlight中,DataGrid的垂直滚动条与数据的联动

0
悬赏园豆:50 [待解决问题]

先说我的需求

  我的一个数据源是变化很频繁的,需要datagrid实时及时的反应出来变化,并且保持位置稳定。处理这个问题我想到两个方式 

  1 在滚动时记录 DataGrid中数据的位置,用ScrollIntoView定位。

 这个处理方式的问题在 每次用绑定  ItemsSource = null; ItemsSource = data之后 位置会重置为0。而我又没有发现一个好的方法可以设置位置。

  2 获取到了 DataGrid的滚动条对象,每次滚动记录位置 并在每次用绑定之后恢复位置

 我已经通过重写子类 通过  base.GetTemplateChild("VerticalScrollbar") as ScrollBar;获取到了 DataGrid的滚动条对象,但是在处理滚动条和数据的联动时发生了问题。
问题在我设定已经获取到的滚动条的value值后,DataGrid中的滚动条的UI会变化而且位置正确,但是DataGrid中的数据并没有按我想象的移动到对应的位置上。

我现在的困惑时 不知道有什么方法可以让DataGrid中的数据能按照我想的滚动到合适的位置上。这两个方法之中 走不下去的部分谁能补全解决

各路大神给点神力吧 

qdzhaokun的主页 qdzhaokun | 初学一级 | 园豆:107
提问于:2012-11-29 16:10
< >
分享
所有回答(3)
0

这个还真不好搞,可以考虑一下,按照时间倒排序,这样最新的记录就一直在最上面不需要滚动

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-29 16:44
-1

Grid.ScrollIntoView(item)

中文代码 | 园豆:951 (小虾三级) | 2012-11-29 16:44
0
geass.. | 园豆:1821 (小虾三级) | 2012-11-29 19:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册