softshipper
softshipper

Reputation: 34099

Missing scrollbar on datagrid

I want to use scrollbar on datagrid. Look at following code:

<UserControl x:Class="CustomCopyNas.UserControls.FolderControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300" Width="700">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
        </Grid.RowDefinitions>
        <ScrollViewer>
            <DataGrid Grid.Row="0" ItemsSource="{Binding Folders, Mode=TwoWay}" AutoGenerateColumns="False">
                <DataGrid.Columns>
                    <DataGridTemplateColumn Header="Path">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <TextBox PreviewMouseDown="UIElement_OnPreviewMouseDown" Text="{Binding Path}" IsReadOnly="True"></TextBox>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                </DataGrid.Columns>
            </DataGrid>
        </ScrollViewer>
    </Grid>
</UserControl>

I try to wrap datagrid into ScrollViewer, but this does not work. What i have to do, when i want to enable scrollViewer in my datagrid, how can i do that?

Upvotes: 0

Views: 81

Answers (2)

Lamourou abdallah
Lamourou abdallah

Reputation: 354

Many functions of DataGrid can be automated for example scrolling. to do this you can use HorizontalScrollBarVisibility and VerticalScrollBarVisibility.

<UserControl x:Class="CustomCopyNas.UserControls.FolderControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         mc:Ignorable="d"
         d:DesignHeight="300" d:DesignWidth="300" Width="700">
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"></RowDefinition>
    </Grid.RowDefinitions>
        <DataGrid HorizontalScrollBarVisibility="Auto"  VerticalScrollBarVisibility="Auto" Grid.Row="0" ItemsSource="{Binding Folders, Mode=TwoWay}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Path">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox PreviewMouseDown="UIElement_OnPreviewMouseDown" Text="{Binding Path}" IsReadOnly="True"></TextBox>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
</Grid>

Upvotes: 0

Sheridan
Sheridan

Reputation: 69987

You can add ScrollBars to your DataGrid without adding a ScrollViewer. You can make ScrollBars appear using the ScrollViewer.HorizontalScrollBarVisibility and ScrollViewer.VerticalScrollBarVisibility Attached properties:

<DataGrid ScrollViewer.HorizontalScrollBarVisibility="Visible"
    ScrollViewer.VerticalScrollBarVisibility="Visible" />

Upvotes: 2

Related Questions