Search code examples
wpfdatagridgridscrollbarwpfdatagrid

Scrollbar not coming in DataGrid WPF


I am using Visual Studio 2015 Community Version WPF.

I am new to WPF and creating the simple sample which contains the grid that binds from database but it is not showing me the scroll bar.

Before using Grid directly DataGrid show the scroll bar but after put into the Grid not showing me the scroll bar.

Here is a code please correct me anywhere I am wrong!

<Grid>
        <control:HeaderControl HorizontalAlignment="Left" Margin="0,-242,0,388" Width="1360"></control:HeaderControl>
        <control:FooterControl Margin="0,75,5,-75"></control:FooterControl>
        <Label Content="Products List :"  Margin="0,82,0,30"/>
        <Grid Margin="6,1,194,199">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
            </Grid.RowDefinitions>

            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <DataGrid Grid.Row="1" Margin="0,108,1100,30" Name="grdProduct" AlternatingRowBackground="#FFC4B0B0" AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding ProductName}" Width="120" Header="Product Name"/>
                    <DataGridTextColumn Binding="{Binding UnitName}" Width="100" Header="Unit Name"/>
                    <DataGridTextColumn Binding="{Binding Price}" Width="50" Header="Price"/>
                </DataGrid.Columns>
            </DataGrid>
        </Grid>
    </Grid>

and here is the output

enter image description here

The coming data is so big so I need a scroll bar.

Thanks in advance.


Solution

  • Not sure. Are you looking for ScrollViewer?

       <ScrollViewer MaxHeight="200" VerticalScrollBarVisibility="Auto">
            <Grid Margin="6,1,194,199">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"></RowDefinition>
                </Grid.RowDefinitions>
    
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <DataGrid Grid.Row="1" Margin="0,108,1100,30" Name="grdProduct" AlternatingRowBackground="#FFC4B0B0" AutoGenerateColumns="False">
                    <DataGrid.Columns>
                        <DataGridTextColumn Binding="{Binding ProductName}" Width="120" Header="Product Name"/>
                        <DataGridTextColumn Binding="{Binding UnitName}" Width="100" Header="Unit Name"/>
                        <DataGridTextColumn Binding="{Binding Price}" Width="50" Header="Price"/>
                    </DataGrid.Columns>
                </DataGrid>
            </Grid>
        </ScrollViewer>
    

    Make sure to define the MaxHeight for the ScrollViewer