GridViewColumn本身不能使用*作为宽度的值,但是对于Grid可以,于是我们虚构一个Grid,让他不可见,并绑定Grid与ListView的宽度,使ListView实现因为第一列长度变化而自动填充。下面为代码
<ListView> <ListView.View> <GridView> <GridViewColumn Header="因变量列" x:Name="col1"/> <GridViewColumn Header="自变量列" Width="{Binding ElementName=col2, Path=ActualWidth}"/> </GridView> </ListView.View> Test Text </ListView> <!--This is the hidden helper Grid which does the resizing --> <Grid Visibility="Hidden"> <Grid.ColumnDefinitions> <ColumnDefinition Name="re_col1" Width="{Binding ElementName=col1, Path=ActualWidth}"/> <ColumnDefinition Name="col2" 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>