WPFでListView
のサイズを変更しようとしています。私はListView
に列の幅に合わせて幅を縮めるように強制する方法を理解したいと思います。私は、Viewプロパティを使用してバインドListView
を持っているので、のようないくつかのGridViewColumn
秒を追加します。WPF ListViewサイズ変更狂気
<ListView ItemsSource="{Binding MyCollection}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width={Binding NameWidth} DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Fee" DisplayMemberBinding="{Binding Fee}"/>
</GridView>
</ListView.View>
</ListView>
私は列の非表示を解除/非表示にすることができますように、私は列の幅をバインドします。列を再表示すると、新しい幅に合わせてListView
が大きくなります。しかし、私が列を再び隠すと、ListView
の幅は縮小しません。
私はListView
をサブクラス化し
InvalidateArrange()
、InvalidateMeasure()
、InvalidateVisual()
のようないくつかのコマンドを呼び出そうとしています。しかしそれらのどれもがListView
を縮小させる原因にはなりません。
コレクションをListView
にリロードすると収縮します。しかし、私はそれがエレガントではない、それを行う正しい方法だと思います。私は混乱の泥沼で自分自身を見つけるためにリフレクターを通して旅してきました。誰かが私にいくつかの洞察を与えてくれる?