Synchronizing scroll positions for 2 WPF DataGrids

Posted by Philipp Schmid on Stack Overflow See other posts from Stack Overflow or by Philipp Schmid
Published on 2008-11-16T00:10:07Z Indexed on 2010/03/25 22:13 UTC
Read the original article Hit count: 423

Filed under:
|
|

I am trying to synchronize the horizontal scroll position of 2 WPF DataGrid controls.

I am subscribing to the ScrollChanged event of the first DataGrid:

<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">

I have a second DataGrid:

<toolkit:DataGrid x:Name="TargetGrid">

In the event handler I was attempting to use the IScrollInfo.SetHorizontalOffset, but alas, DataGrid doesn't expose IScrollInfo:

private void SourceGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ((IScrollInfo)TargetGrid).SetHorizontalOffset(e.HorizontalOffset);
    // cast to IScrollInfo fails
}

Is there another way to accomplish this? Or is there another element on TargetGrid that exposes the necessary IScrollInfo to achieve the synchronization of the scroll positions?

BTW, I am using frozen columns, so I cannot wrap both DataGrid controls with ScrollViewers.

© Stack Overflow or respective owner

Related posts about wpf

Related posts about datagrid