在下面的.NET 3.5 XAML中,如果将“Day”列的列宽拉得更宽,ListView会很好地增长以解决这个问题。但是,如果然后将列宽度拖得更窄,则表格保持原样大小。
同样的问题也存在于垂直方向。如果你的某些列有自动换行,那么表格会更高,以便处理这个,但不会收缩。
这是真正的傻瓜部分。如果删除ListView.ItemsSource部分,则ListView将按需运行!为什么这会影响它呢?
有什么想法吗?
<Window x:Class="TestWpfTables.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:s="clr-namespace:System.Collections;assembly=mscorlib"
xmlns:p="clr-namespace:System;assembly=mscorlib"
Title="Window1" Height="300" Width="300">
<Grid>
<ListView HorizontalAlignment="Left">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Path=Day}" Header="Day" />
</GridView>
</ListView.View>
<ListView.ItemsSource>
<s:ArrayList>
<p:DateTime>1990/1/1 12:22:02</p:DateTime>
<p:DateTime>1990/1/2 13:2:01</p:DateTime>
<p:DateTime>1990/1/5 2:1:6</p:DateTime>
</s:ArrayList>
</ListView.ItemsSource>
</ListView>
</Grid>
</Window>
答案 0 :(得分:3)
通常,所有WPF ItemsControl都是“仅增长”,这意味着我们执行初始布局传递,然后控件只会在内容更改时调整大小。我们默认不调整大小的原因是它需要昂贵的测量并安排通过,这会对性能产生负面影响