Reputation: 31
How to always show the vertical scrollbar in a datagrid irrespective of number of rows it contains ?
I am using Visual Studio 10 C# for window application.
Upvotes: 3
Views: 6652
Reputation: 1
When DataGrid has no rows, example you filter off all rows, its horizontal scrollbar is disabled. Even if it's Visibility setting is set to Visible.
One solution is put DataGrid inside of additional ScrollViewer and show this outer ScrollViewer horizontal scrollbar when Datagrid's own horizontal scrollbar is disabled. Like this:
<ScrollViewer.Style>
<Style TargetType="ScrollViewer">
<Style.Triggers>
<!-- Show this horizontal scrollbar when DataGrid:s own scrollbar is disappeared or disabled after filtering off all DataGrid rows -->
<DataTrigger Binding="{Binding ElementName=MyDataGrid, Path=HasItems}" Value="False">
<Setter Property="HorizontalScrollBarVisibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ScrollViewer.Style>
<DataGrid x:Name="MyDataGrid"
...>
</DataGrid>
Upvotes: 0
Reputation: 79
Try setting ScrollViewer.VerticalScrollBarVisibility="True
That property is set to Auto by default.
Upvotes: 1