WPF ListView расширяется в ответ на изменение размера столбца, но не сокращается - PullRequest
3 голосов
/ 14 июля 2009

В следующем .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>

1 Ответ

3 голосов
/ 31 июля 2009

Как правило, все элементы управления WPF ItemsControls «только для роста», что означает, что мы выполняем начальный этап макета, а затем элемент управления будет изменять свой размер только при изменении содержимого. Причина, по которой мы не изменяем размер меньше по умолчанию, состоит в том, что для этого потребуются дорогостоящие измерения и организация прохода, что отрицательно скажется на производительности

ref: нить codeplex

...