<ListView ItemsSource="{Binding}" >
<ListView.View>
<GridView>
<GridViewColumn Header="賬戶" >
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=FundAccountName}" HorizontalAlignment="Center" Width="auto" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="數量" Width="*">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Position, StringFormat='0.##'}" HorizontalAlignment="Center" Width="auto" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
在 GridViewColumn 中設置
Width="*"
或者是在 DataTemplate 中 設置Width="auto"
並不能達到自動 , 列寬自動調整的效果, 列寬在控件第一次加載的時候已經確定,之後不會隨着 某列數據長度的增加和減少 而改變列寬。
找了很多方法,感覺下面的這中方法比較簡單和實用,在每次增加或者刪除數據集合的時候,添加下列代碼:
//調整列寬
GridView gv = lvTrans.View as GridView;
if (gv != null)
{
foreach (GridViewColumn gvc in gv.Columns)
{
gvc.Width = gvc.ActualWidth;
gvc.Width = Double.NaN;
}
}
將 GridViewColumn 的 Width 屬性 設置爲 無效值,觸發其自適應效果。