2009-01-15 109 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列中使用的最後一列......(未經測試的猜測)。