2009-01-15 84 views
0

我有一个数据绑定列表视图,可以手动设置除最后一个以外的所有列宽。最后一个字段的数据长度差别很大。最后一列需要扩展以处理数据的宽度,如果滚动更大。我曾尝试将最后一列的宽度设置为非常大的数字,但是会将列标题从页面中移出。如何计算最后一列需要显示数据的最小宽度,以及是否需要将页眉列保留在页面上?如何自动设置数据绑定列表的列宽度

<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> 

回答

1

因为您的页眉离开页面,我假设您的页眉是居中或右对齐的。左对齐标题使其保持放置(您可以在左侧添加填充以伪造居中或右对齐的标题)。

使用宽度=“自动”使列的宽度根据列中最宽的项目展开。

实施例:

<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› 
... 
0

你可以尝试使用而不是像素%,也许分配60%whilest其余40%可在第一3列中使用的最后一列......(未经测试的猜测)。