'How to bind 2 ScrollViewer controls when horizontal scroll change event is raised in a ControlTemplate in Avalonia?
I'm making a custom table control. It has 2 ScrollViewers, one for the rows section and the other hidden in the columns section. They are both sitting inside a DataTemplate. I would like to scroll the columns section horizontal when the user scrolls the rows section horizontal. I tried Binding the Offset property to one another but couldn't figure out how to do it only to the X axis. Is this possible on the xaml side or does it have to happen in C#? Either way is fine, just trying to figure out how to do it.
Solution 1:[1]
Someone over at Avalonia's Github answered it. I'll share it here. I was over thinking it. You can just Bind the whole Offset object.
<StackPanel Spacing="5">
<ScrollViewer x:Name="ScrollViewer1" HorizontalScrollBarVisibility="Visible" Height="50">
<Border MinWidth = "2000" Background="{DynamicResource SystemAccentColor}">
<TextBlock>This is a very very long Text in ScrollViewer 1. This is a very very long Text in ScrollViewer 1. This is a very very long Text in ScrollViewer 1. This is a very very long Text in ScrollViewer 1. </TextBlock>
</Border>
</ScrollViewer>
<ScrollViewer x:Name="ScrollViewer2" HorizontalScrollBarVisibility="Visible" Height="50"
Offset="{Binding #ScrollViewer1.Offset, Mode=TwoWay}">
<Border MinWidth = "2000" Background="{DynamicResource SystemAccentColorDark2}">
<TextBlock>This is a very very long Text in ScrollViewer 2. This is a very very long Text in ScrollViewer 2. This is a very very long Text in ScrollViewer 2. This is a very very long Text in ScrollViewer 2. </TextBlock>
</Border>
</ScrollViewer>
</StackPanel>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Donny V. |
