Windows应用商店xaml和c#如何创建手风琴风格列表

Windows应用商店xaml和c#如何创建手风琴风格列表,c#,xaml,windows-8,windows-runtime,winrt-xaml,C#,Xaml,Windows 8,Windows Runtime,Winrt Xaml,我有一个ListView,它的CollectionViewSource中的IsGroupedSource设置为true。我试图在单击组标题时切换组可见性 <CollectionViewSource x:Name="FiltersViewSource" Source="{Binding Filters}" IsSourceGrouped="true" ItemsPath="AttributeValues" /&g

我有一个ListView,它的CollectionViewSource中的IsGroupedSource设置为true。我试图在单击组标题时切换组可见性

<CollectionViewSource
        x:Name="FiltersViewSource"
        Source="{Binding Filters}"
        IsSourceGrouped="true"
        ItemsPath="AttributeValues"
        />

<ListView
                    x:Name="filtersListView"
                    AutomationProperties.AutomationId="ItemListView"
                    AutomationProperties.Name="Grouped Items"                      
                    Grid.Row="1"
                    Margin="0,-10,0,0"
                    Padding="30"
                    ItemsSource="{Binding Source={StaticResource FiltersViewSource}}"
                    SelectionMode="None"
                    IsSwipeEnabled="false"
                    IsItemClickEnabled="True"
                    ItemClick="ItemView_ItemClick">
                    <ListView.GroupStyle>
                        <GroupStyle>
                            <GroupStyle.HeaderTemplate>
                                <DataTemplate>
                                    <Grid Margin="7,7,0,0">
                                        <Button AutomationProperties.Name="Group Title"
                                            Click="Header_Click"
                                            Style="{StaticResource TextPrimaryButtonStyle}">
                                            <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="{Binding Name}" Foreground="White" FontSize="35" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                                <TextBlock Text="{StaticResource ChevronGlyph}" Foreground="White" HorizontalAlignment="Right" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>
                                            </StackPanel>
                                        </Button>
                                    </Grid>
                                </DataTemplate>
                            </GroupStyle.HeaderTemplate>
                            <GroupStyle.Panel>
                                <ItemsPanelTemplate>
                                    <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,0,0"/>
                                </ItemsPanelTemplate>
                            </GroupStyle.Panel>
                        </GroupStyle>
                    </ListView.GroupStyle>
                    <ListView.ItemTemplate>
                        <DataTemplate >
                                <StackPanel  Visibility="{Binding Visibility}" Orientation="Horizontal">
                                    <CheckBox Margin="0,0,20,0"/>
                                    <TextBlock Text="{Binding Name}" Style="{StaticResource ItemTextStyle}" Foreground="White" FontSize="20" MaxHeight="40"/>
                                    <TextBlock Text="(40)" Style="{StaticResource ItemTextStyle}" Foreground="White" FontSize="25" MaxHeight="40"/>
                                </StackPanel>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

基本上,我正在尝试创建一个手风琴风格列表。我试着加上

<VariableSizedWrapGrid Visibility="{Binding Visibility}" Orientation="Vertical" Margin="0,0,0,0"/>

可见性是基础组对象中类型可见性的属性

但它不起作用


是否还有其他方法可以做到这一点?

您可以尝试将标题按钮的命令属性绑定到视图模型命令,该命令可以更改要绑定到VariableSizedWrapGrid的组视图模型可见性属性。

您可以在后面发布代码吗?我想尝试一下,但我很难理解您的确切意思。你能再详细解释一下吗?如果我理解你的意思正确的话,我已经试过了。我自己也试过了,似乎组面板的DataContext不是一个组本身,而是一些通用的DependencyObject实例。基于此,我认为您可能需要创建一些自定义行为来遍历可视化树以找到正确的面板并翻转其可见性,或者停止使用GridView的分组功能,而是使用一个水平滚动的ListView,其中每个项目都是绑定到组的GridView。谢谢,我尝试了第二个解决方案“水平滚动列表视图,其中每个项目都是绑定到组的GridView”,它工作得非常好。谢谢!