2009-07-13 12 views
3

次の.NET 3.5 XAMLでは、 'Day'列の列幅を広げるとListViewがうまく展開します。ただし、列の幅を狭くドラッグすると、表のサイズはそのまま維持されます。WPF 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

あなたはListView.ItemsSource部分を取り外すとはどういう意味ですか? ListViewは空です。 私を怒らせる、それを縮める方法を知らない。 –

答えて

3

、すべてのWPFのItemsControlsは「成長のみ」、我々は最初のレイアウトパスを行うと、コンテンツが変更された場合、その後コントロールにのみ、より大きなサイズを変更することを意味しています。私たちは、デフォルトでは小さいサイズを変更していない理由は、それが高価な措置を必要とし、マイナスのパフォーマンスに影響を与えるパスを、アレンジだろうということです

ref: codeplex thread

+3

それがパフォーマンスに悪影響を与える場合はどうなりますか。 UIが使用できなくなる可能性があります。少なくとも縮小するオプションを与えてください。 – Paparazzi

関連する問題