2 つのWPF DataGridコントロールの水平スクロール位置を同期しようとしています。
最初の DataGrid のScrollChangedイベントをサブスクライブしています。
<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">
2 番目の 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
}
これを達成する別の方法はありますか?IScrollInfo
それとも、スクロール位置の同期を達成するために必要なものを公開する TargetGrid に別の要素がありますか?
ところで、私は凍結された列を使用しているため、両方の DataGrid コントロールを ScrollViewers でラップすることはできません。