这个问题与其他未回答的问题相同。
当Expander展开时,外部ListView会增长以为展开器内容腾出空间,但是当Expander然后折叠时,视图不会强制 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>-->
我在ItemsControl或StackPanel中有ParameterGroupView ,因为实际上有很多ParameterGroupView条目。切换到StackPanel不会改变行为。
移除Boarder不会影响行为,但拥有它有助于仅使用单个ParameterGroupView显示行为。
外部ListView中可以有许多Expander部分,而Expander在内部ListView中可以有许多实体。
外部ListView和Expander用于替换TreeView,它用于具有可折叠节点的列表,但TreeView内部使用网格,意味着 TextView 项目被水平挤压,就像你删除 ether HorizontalContentAlignment ="拉伸”属性。
因此,如果有另一种方法来包装/连接所有这些,我也会很高兴。
这是一个问题,因为我们的TextView块很大并且有很多Expander。
编辑:TextView用作代码是数据绑定的,因此动态组合在一起。所以任何 ListView 的替代品都需要某种形式的ItemsSource