2013-04-10 3 views
1

ListView IsGroupedSource를 CollectionViewSource에서 true로 설정했습니다. 그룹 헤더를 클릭하면 그룹 가시성을 전환하려고합니다.Windows 저장소 xaml 및 C# accordian 스타일 목록을 만드는 방법

<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"/> 

Visbility는 기본 그룹 개체의 가시성 유형의 속성입니다.

하지만 작동하지 않습니다.

어쨌든 이것을 수행 할 예정입니까?

+1

코드 숨김을 게시 할 수 있습니까? – Xyroid

답변

0

머리글 단추의 명령 속성을 VariableSizedWrapGrid에 바인딩 할 그룹보기 모델 가시성 속성을 변경하는보기 모델 명령에 바인딩 할 수 있습니다.

+0

나는 그것을 시도하고 싶다 그러나 나는 정확하게 당신이 의미하는 무슨을 이해하는 것을 열심히 보내고있다. 좀 더 자세히 설명해 주시겠습니까? – user2175596

+0

내가 당신의 말을 정확하게 이해한다면, 나는 이미 그것을 시도했다. – user2175596

+0

나는 그 자신을 시도했지만 그룹 패널의 DataContext는 그룹 자체가 아니라 일부 일반적인 DependencyObject 인스턴스처럼 보입니다. 그것을 기반으로 올바른 패널을 찾고 가시성을 반전 시키거나 GridView의 그룹화 기능을 사용하지 않고 비주얼 한 트리를 탐색하여 GridView의 각 항목이있는 ListView를 가로 스크롤 할 수있는 사용자 정의 동작을 만들어야한다고 생각합니다 GridView는 그룹에 바인딩됩니다. –

관련 문제