带有嵌套扩展器的ListView不会折叠

Sim*_*rim 7 wpf listview expander

这个问题与其他未回答的问题相同.

扩展扩展外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>-->
Run Code Online (Sandbox Code Playgroud)

我在ItemsControlStackPanel中ParameterGroupView,因为实际上有很多ParameterGroupView条目.交换到StackPanel不会改变行为.

删除边界不会影响行为,但让它只显示一个ParameterGroupView的行为.

可以有很多扩展外部分的ListView扩展可以让内内许多实体的ListView.

外部ListViewExpander是替换一个TreeView,它曾经有一个可折叠节点列表,但TreeView内部使用了网格,意味着TextView项目被横向压缩,就像删除了以下的一样:Horizo​​ntalContentAlignment ="拉伸"属性.

因此,如果有另一种方法来包装/连接所有这些,我也会很高兴.

这是一个问题,因为我们的TextView块很大并且有很多Expander.

编辑:TextView用作代码是数据绑定的,因此动态地放在一起.因此,ListView的任何替换都需要某种形式的ItemsSource

Sim*_*rim 4

找到了解决方案,它详细说明了问题所在的位置。

ItemControl接受ItemsSource并自动调整大小。因此,用ItemControl替换两个ListView会导致嵌套折叠。

但没有滚动,因此用ScrollViewer包装外部ItemControl可以重现完整的所需效果。

<ScrollViewer
    VerticalScrollBarVisibility="Auto">
    <ItemsControl>
        <!-- ParameterGroupView -->
        <Border
            BorderBrush="Brown"
            BorderThickness="1"
            CornerRadius="4"
            Padding="4"
            Height="Auto">
            <ItemsControl
                HorizontalContentAlignment="Stretch">
                <Expander
                    Header="Expander A"
                    IsExpanded="False">
                    <ItemsControl
                        HorizontalContentAlignment="Stretch">
                        <!-- TextView -->
                        <TextBlock>Content A</TextBlock>
                        <TextBlock>Content B</TextBlock>
                    </ItemsControl>
                </Expander>
            </ItemsControl>
        </Border>
    </ItemsControl>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

我正在边框和双边框部分中使用双扩展器进行测试。