Я пытаюсь изменить размер ListView
в WPF. Я хочу выяснить, как заставить ListView
сжать ее ширину, чтобы она соответствовала ширине ее столбцов. У меня есть ListView
, что я связываю с помощью окна свойств и добавить некоторые GridViewColumn
S так: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
, она сжимается, чтобы соответствовать. Но я думаю, что это не изящный, не правильный способ сделать это. Я путешествовал через Рефлектор, чтобы оказаться в трясине путаницы. Может ли кто-нибудь дать мне некоторое представление?