同步滚动位置我想同步水平滚动位置的2个WPF的DataGrid控件。2个WPF DataGrid中
我订阅了ScrollChanged事件的第一个DataGrid的:
<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">
我有第二个DataGrid:
<toolkit:DataGrid x:Name="TargetGrid">
在事件处理中,我尝试使用IScrollInfo.SetHorizontalOffset
,但唉,DataGrid不公开IScrollInfo
:
private void SourceGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
((IScrollInfo)TargetGrid).SetHorizontalOffset(e.HorizontalOffset);
// cast to IScrollInfo fails
}
有没有另外一种方法可以实现这个目标?还是TargetGrid上有另一个元素公开必要的IScrollInfo
以实现滚动位置的同步?
顺便说一句,我是使用冷冻柱,所以我不能用ScrollViewers包装两个DataGrid控件。
是的。不过,我过去也是这样做了同样的事情。我们似乎不应该这样通过视觉树来破解。 WPF的另一种方式是粗糙的边缘。 – PeterAllenWebb 2009-05-13 14:32:08