この質問は、この他の未回答の質問と同じです。
エキスパンダーを展開すると、外側のListViewが拡大してエキスパンダーのコンテンツ用のスペースが作成されますが、エキスパンダーを折りたたむと、ビューによってListViewのサイズが強制的に変更されることはありません。
削減されたコード、後に注記があります:
<!--<StackPanel>-->
<ItemsControl>
<!-- ParameterGroupView -->
<Border BorderBrush="Brown" BorderThickness="1" CornerRadius="4" Padding="4">
<ListView HorizontalContentAlignment="Stretch">
<Expander Header="Expander A" IsExpanded="False">
<ListView HorizontalContentAlignment="Stretch">
<!-- TextView -->
<TextBlock >Content A</TextBlock>
<TextBlock >Content B</TextBlock>
</ListView>
</Expander>
</ListView>
</Border>
</ItemsControl>
<!--</StackPanel>-->
実際には多くのParameterGroupViewエントリがあるため、 ItemsControlまたはStackPanelにParameterGroupViewがあります。StackPanelに交換しても、動作は変わりません。
ボーダーを削除しても動作には影響しませんが、ボーダーを削除すると、単一のParameterGroupViewのみで動作を表示するのに役立ちます。
外側のListViewには多くのExpanderセクションがあり、内側のListView内にはExpanderが多くのエンティティを持つことができます。
外側のListViewとExpanderは、折りたたみ可能なノードのリストを作成するために使用されていたTreeViewを置き換えるものですが、 TreeViewの内部グリッドの使用は、エーテルのHorizontalContentAlignment = "を削除した場合と同じように、TextViewアイテムが水平方向に押しつぶされたことを意味します。ストレッチ」属性。
ですから、これをすべてまとめる/配線する別の方法があれば、私も幸せになります。
TextViewブロックが大きく、 Expanderが多数あるため、これは問題です。
編集:コードはデータにバインドされているため、 TextViewが使用され、動的にまとめられます。したがって、ListViewを置き換えるには、何らかの形式のItemsSourceが必要になります。