.net WPF ListView随着列大小的调整而变宽,但不会收缩

.net WPF ListView随着列大小的调整而变宽,但不会收缩,.net,wpf,listview,resize,.net,Wpf,Listview,Resize,在下面的.NET3.5XAML中,如果您将“Day”列的列宽拉得更宽,ListView会很好地增长以说明这一点。但是,如果随后将列宽拉窄,则表的大小将保持不变 垂直方向上也存在同样的问题。如果您的某些列具有换行符,则表将变得更高,以处理此问题,但不会收缩 这是真正愚蠢的部分。如果删除ListView.ItemsSource部分,则ListView将按需要工作!为什么这会影响它 有什么想法吗 <Window x:Class="TestWpfTables.Window1" xmlns=

在下面的.NET3.5XAML中,如果您将“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>

1990/1/1 12:22:02
1990/1/2 13:2:01
1990/1/5 2:1:6
通常,所有WPF ItemsControl都是“仅增长”的,这意味着我们完成了初始布局过程,随后,如果内容发生更改,该控件的大小只会变大。默认情况下,我们不调整较小的大小的原因是,这将需要昂贵的度量和安排传递,这将对性能产生负面影响


删除ListView.ItemsSource部分是什么意思?那么ListView是空的,对吗?让我抓狂的是,我也不知道如何缩小它。所以,如果它对性能有负面影响呢。它可能导致用户界面不可用。至少可以选择收缩。