2012-05-30 5 views
0

Je suis nouveau sur WinRT et j'essaie de créer un gridview standard qui a un en-tête de groupe avec un certain nombre de tuiles en dessous. Ce bit est facile. Je suis en train de le modifier de sorte que sous la grille de tuiles Je peux aussi ajouter un pied de page en utilisant le style de conteneurs:WinRT ControlTemplate ItemsPanel

<GridView 
     x:Name="itemGridView" 
     AutomationProperties.AutomationId="ItemGridView" 
     AutomationProperties.Name="Grouped Items" 
     Margin="116,0,40,46" 
     ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" 
     ItemTemplate="{StaticResource Project200x200ItemTemplate}"     
     SelectionMode="None" 
     IsItemClickEnabled="True" 
     ItemClick="ItemView_ItemClick"> 

     <GridView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </GridView.ItemsPanel> 

     <GridView.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <Grid Margin="1,0,0,6"> 
          <Button 
           AutomationProperties.Name="Group Title" 
           Content="{Binding Name}" 
           Click="Header_Click" 
           Style="{StaticResource TextButtonStyle}" 
           FontWeight="{Binding IsSelected, ConverterParameter=FontWeight, Converter={StaticResource BooleanToFontWeightConverter}}" 
           /> 
         </Grid> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
       <GroupStyle.Panel>       
        <ItemsPanelTemplate> 
         <VariableSizedWrapGrid Background="Red" Orientation="Vertical" Margin="0,0,40,0" /> 
        </ItemsPanelTemplate> 
       </GroupStyle.Panel> 

       <GroupStyle.ContainerStyle> 
        <Style TargetType="GroupItem"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 
            <StackPanel> 
             <ContentPresenter/> 
             <ItemsPresenter/> 
             <TextBlock Text="*** End of group ***"/> 
            </StackPanel> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </GroupStyle.ContainerStyle> 

      </GroupStyle> 
     </GridView.GroupStyle>    
    </GridView> 

Ce presque fonctionne, mais après avoir ajouté le style conteneur, la grille de tuiles ne présente plus. .. l'en-tête du groupe et le bloc de texte 'Fin du groupe' est affiché, mais j'ai perdu la grille de tuiles.

Quelqu'un peut-il repérer ce que je fais mal ...?

Répondre

0

Qu'est-ce qui ne va pas? Remplacer VirtualizingStackPanel avec son correspondant StackPanel et tout fonctionnera bien ou se déplacer sur Windows7 (le problème se produit sur Vista). Btw. La virtualisation ne fonctionne pas sur les objets hiérarchiques tels que TreeView ou DataGrid qui utilise le groupement (GroupStyle). Observez un this.

Questions connexes