我正在嘗試調整WPF中的ListView
。我想弄清楚如何強制ListView
將其寬度縮小爲僅適合其列的寬度。我有一個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
它縮小以適合。但我認爲這並不優雅,也不是正確的做法。我已經通過Reflector旅行,發現自己處於混亂的泥潭。有人能給我一些見解嗎?