Reputation: 314
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
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
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