Wpf 如何自动设置数据绑定ListView的列宽度

Wpf 如何自动设置数据绑定ListView的列宽度,wpf,listview,Wpf,Listview,我有一个数据绑定列表视图,可以手动设置除最后一个之外的所有列宽。最后一个字段的数据长度变化很大。最后一列需要展开以处理数据的宽度,如果更大,则需要滚动。我曾尝试将最后一列的宽度设置为某个非常大的数字,但这会使列标题脱离页面。如何计算显示数据所需的最后一列的最小宽度,以及该宽度是否较大以保持列标题在页面上 <ListView x:Name="ListViewFlightPlans" Background="#FF000000" IsSynchronizedWithCurrentItem="T

我有一个数据绑定列表视图,可以手动设置除最后一个之外的所有列宽。最后一个字段的数据长度变化很大。最后一列需要展开以处理数据的宽度,如果更大,则需要滚动。我曾尝试将最后一列的宽度设置为某个非常大的数字,但这会使列标题脱离页面。如何计算显示数据所需的最后一列的最小宽度,以及该宽度是否较大以保持列标题在页面上

<ListView x:Name="ListViewFlightPlans" Background="#FF000000" IsSynchronizedWithCurrentItem="True" Width="659.5" Height="Auto" 
                      Foreground="#FFFDF3F3"  BorderBrush="{x:Null}" VerticalAlignment="Bottom" Visibility="Hidden" >
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="CID" DisplayMemberBinding="{Binding Path=CID}" Width="50"/>
                        <GridViewColumn Header="Callsign" DisplayMemberBinding="{Binding Path=ACID}" Width="65"/>
                        <GridViewColumn Header="Type" DisplayMemberBinding="{Binding Path=Type}" Width="65"/>
                        <GridViewColumn Header="Route" DisplayMemberBinding="{Binding Path=Route}" Width="900 e"/>
                    </GridView>
                </ListView.View>
            </ListView>


您可以尝试使用%而不是像素,并可能将60%分配给最后一列,而剩余的40%可用于前3列……(未经测试的猜测)。

因为您的标题偏离页面,我假设您的标题是居中或右对齐的。左对齐页眉使其保持不变(可以在左侧添加填充以模拟居中或右对齐的页眉)

使用Width=“Auto”使列的宽度基于列中最宽的项展开

例如:

<GridViewColumn Header="Route" DisplayMemberBinding="{Binding Path=Route}" 
     Width="Auto"
     HeaderContainerStyle="{StaticResource WideColumnHeader}"
/>
...
‹!--Somewhere in your resources--›
...
‹Style x:Key="WideColumnHeader" TargetType="{x:Type GridViewColumnHeader}"›
   ‹Setter Property="HorizontalContentAlignment" Value="Left" /›
   ‹Setter Property="Padding" Value="40,0,0,0"
‹/Style›
...

...
‹!--在您的资源中的某个地方--›
...
›Style x:Key=“WideColumnHeader”TargetType=“{x:Type GridViewColumnHeader}”›
›Setter Property=“HorizontalContentAlignment”Value=“Left”/
›Setter Property=“Padding”Value=“40,0,0,0”
嫀/风格›
...