我有一个数据绑定列表视图,可以手动设置所有列宽,除了最后一个。最后一个字段的数据长度变化很大。最后一列需要扩展以处理数据的宽度,如果更大的滚动。我已经尝试将最后一列的宽度设置为一个非常大的数字,但是这会驱动列标题离开页面。如何计算最后一列显示数据所需的最小宽度,以及它是否很大以保持页面上的列标题?
<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>
答案 0 :(得分:1)
由于您的标题离开了页面,我认为您的标题是中心对齐或右对齐。左对齐标题以使其保持不变(您可以在左侧添加填充以伪造居中或右对齐的标题)。
使用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›
...
答案 1 :(得分:0)
您可以尝试使用%代替像素,也许可以将60%分配给最后一列,而剩余的40%可以用于前3列....(未经测试的猜测)。