Windows 通用手风琴或 ExpanderView UserControl

Windows Universal Accordion or ExpanderView UserControl

我需要像下面这样设计一个可重复使用的用户控件。它内部有一个带有动态内容和多选选项的网格视图。

由于没有这样的控件可以用来完成这样的事情,我不知道如何使它成为现实。我真的很困惑是使用 ExpanderView 还是使用 DataTemplateSelector。你建议我用什么来制作这个或你以前用过的任何东西来实现同样的功能?

看看这个扩展器控件示例。

https://expanderview.codeplex.com/SourceControl/latest

您可以根据需要修改该控件的模板。因为你需要一个多选的 Gridview,我已经实现了它。

<ExpaControl:ExpanderControl HorizontalAlignment="Center" 
                                     VerticalAlignment="Top" 
                                     Width="300"
                                     IsExpanded="True"
                                     Header="Expandable View Header!!!"
                                     Expanded="ExpanderControl_Expanded"
                                     NonExpandableHeader="This is the non-expandable header">
            <GridView SelectionMode="Multiple" HorizontalAlignment="Left">
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                    </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
                <GridViewItem Margin="5">
                    <Rectangle Height="30" Width="30"
                               Fill="Gray"/>
                </GridViewItem>
            </GridView>
        </ExpaControl:ExpanderControl>