WPF宽度问题与listviewitem中的listview

时间:2019-03-09 14:24:09

标签: c# wpf listview listviewitem expander

我有一个列表视图,其中有几个列表视图项,但是我想显示其他信息,因此我添加了一个扩展器,该扩展器在所述列表视图项中显示了另一个列表视图。但是我的问题是列表视图仅与列表视图列的宽度一样宽。

XAML

<ListView.View>
            <GridView>
                <GridViewColumn>
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Expander>
                                <ListView>
                                    <ListView.View>
                                        <GridView>
                                            <GridViewColumn Header="Order number" DisplayMemberBinding="{Binding Id}"/>
                                            <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>
                                            <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}"/>
                                        </GridView>
                                    </ListView.View>
                                </ListView>
                            </Expander>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Header="Order number" DisplayMemberBinding="{Binding OrderNumber}"/>
                <GridViewColumn Header="Customer" DisplayMemberBinding="{Binding Customer}"/>
                <GridViewColumn Header="Total Price" DisplayMemberBinding="{Binding CombinedPrice}"/>
                <GridViewColumn Header="Urgency" DisplayMemberBinding="{Binding Urgency}"/>
            </GridView>
        </ListView.View>
    </ListView>

1 个答案:

答案 0 :(得分:0)

您的问题是因为扩展器位于列表视图的单元格内,并且该单元格会限制其大小。

它不会扩展到其内容的大小,因为ListView列不会动态调整大小。

您可以考虑使用切换按钮和弹出窗口。将弹出窗口的isopen绑定到选中的切换按钮。

弹出窗口实际上是一个单独的窗口,因此不在单元格周围的“框”内。

您也可以考虑一个数据网格,该数据网格的行详细信息扩展到一行下方。

https://www.wpf-tutorial.com/datagrid-control/details-row/