Jolly
Jolly

Reputation: 314

Resize columns not working in wpf DataGrid

I want to make data grid columns re-sizable based on it's content. I have tried setting CanUserResizeColumns to true but it's not working. If i put this in new wpf project then it would work perfectly but in my exisiting wpf project it's not working.

Here's what I am doing :

<UserControl>
 <Grid>
   <ScrollViewer
    <DataGrid Name="dgAllJob" CanUserResizeColumns="True"
                                  Width="{Binding RelativeSource={RelativeSource Self}, Path=Parent.ActualWidth}"                                    
                                    ScrollViewer.HorizontalScrollBarVisibility="Auto"                                   
                                    ScrollViewer.VerticalScrollBarVisibility="Auto"   
                                    ScrollViewer.CanContentScroll="False"
                                    ColumnWidth="*"                                    
                                    HorizontalAlignment="Stretch"          
                                    CanUserAddRows="False"                 
                                    AutoGenerateColumns="False"
                                  CanUserSortColumns="False">
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Job No"  Binding="{Binding JobNumber,Mode=OneTime}"/>
                                <DataGridTextColumn Visibility="Collapsed" Header="Start Date" Width="80" Binding="{Binding ActualStartDate,StringFormat=dd/MM/yyyy,Mode=OneTime}"/>
                                <DataGridTextColumn Header="Client Name" Binding="{Binding BillName,Mode=OneTime}" CanUserResize="True"/>
                                <DataGridTextColumn Header="Postal Address"  Binding="{Binding BillAddress,Mode=OneTime}" CanUserResize="True"/>
                                <DataGridTextColumn Header="Suburb"  CanUserResize="True" Binding="{Binding BillSuburb,Mode=OneTime}"/>
                                <DataGridTextColumn Header="Site Suburb" CanUserResize="True" Binding="{Binding SiteSuburb,Mode=OneTime}" />
                                <DataGridTextColumn Header="Contact Name" Binding="{Binding ContactName,Mode=OneTime}" CanUserResize="True"/>
                                <DataGridTextColumn Header="Estimator"  Binding="{Binding Estimator,Mode=OneTime}" CanUserResize="True"/>
                                <DataGridTextColumn Header="Installer" Binding="{Binding Installer,Mode=OneTime}" CanUserResize="True"/>
                            </DataGrid.Columns>
      </DataGrid>
     </ScrollViewer>
   </Grid>
</UserControl>

can anyone tell what I am missing or what is wrong here ???

Upvotes: 2

Views: 1694

Answers (2)

pmilin
pmilin

Reputation: 1

Since you are putting your DataGrid in a ScrollViewer, the DataGrid will be sized to the minimum. Try disabling the HorizontalScrollBarVisibility or take it out of the ScrollViewer.

Upvotes: 0

mm8
mm8

Reputation: 169390

Any custom styles in your exisiting project may disable the resize functionality.

You could try to for example set the ColumnHeaderStyle property to x:Null or simply remove the custom Style.

Upvotes: 1

Related Questions