I am using ListView
control instead of DataGrid
in my WPF application. I want to give *
width to my ListView.GridViewColumn
, but whenever I am providing *
width to ListView.GridViewColumn
, it gives me a compile time error. Kindly suggest me how can I provide *
width to ListView.GridViewColumn
, so that ListView.GridViewColumn
can automatically fill extra space when I maximize screen.
Any help on this will highly appreciated. Thanks
Please try that solution:
<ListView>
<ListView.View>
<GridView>
<GridViewColumn Header="column1" x:Name="col1"/>
<!--Column that shall resize: Width is set to the Actual Width of the helper field defined below-->
<GridViewColumn Header="column2"
Width="{Binding ElementName=helperField, Path=ActualWidth}"/>
</GridView>
</ListView.View>
Test Text
</ListView>
<!--This is the hidden helper Grid which does the resizing -->
<Grid Visibility="Hidden">
<Grid.ColumnDefinitions>
<!--Width is bound to width of the first GridViewColumn -->
<ColumnDefinition Width="{Binding ElementName=col1, Path=ActualWidth}"/>
<!--Width is set to "Fill"-->
<ColumnDefinition Width="*"/>
<!--Correction Width-->
<ColumnDefinition Width="10"/>
</Grid.ColumnDefinitions>
<!--This is the hidden helper Field which is used to bind to, using the "Fill" column of the helper grid-->
<Grid Grid.Column="1" x:Name="helperField"/>
</Grid>
You could also find some other solution at the following link:
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/3ee5696c-4f26-4e30-8891-0e2f95d69623/
I posted my approach to this here which is a little different (but found it to be very reliable and allows percentage width columns https://stackoverflow.com/a/10526024/41211) as I tried the above and was finding my devenv.exe processing maxing out as it was constantly trying to re-evaluate my designer view with the above dynamic bindings.
With the group columns view definition, the Kettic GridView allows the users to create column groups view and HTML view for the data in grid