The structure of my wpf application is like:
<Scrollviewer>
<Grid>
<Scrollviewer>
<DataGrid>
My Goal is, if the DataGrid exceeds the height of the screen to use it's own Scrollviewer. At the Moment only the outside ScrollViewer is used and so i have to scroll the whole Grid.
Can someone please tell me how to do this?
You need to set a height on the inner ScrollViewer, otherwise it'll stretch as much as it needs based on it's content's size.
<Window x:Name="RootWindow">
<ScrollViewer>
<Grid Height="{Binding ElementName=RootWindow, Path=ActualHeight}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="1">
<DataGrid />
</ScrollViewer>
</Grid>
</ScrollViewer>
</Window>
Also, the DataGrid has built-in properties for it's own ScrollBars which you can use instead of wrapping the DataGrid in a ScrollViewer. This will scroll the data and always leave the headers visible, instead of scrolling the entire datagrid.
<DataGrid HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto" />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With