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>