2012-08-24 19 views
5

Ho un GridView normale, che visualizza i dati raggruppati. Il mio obiettivo è spostare l'intestazione (un pulsante) dalla parte superiore del gruppo alla sinistra del gruppo.Modifica posizione testata GridView

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

    <GridView.GroupStyle> 
     <GroupStyle> 
      <GroupStyle.HeaderTemplate> 
       <DataTemplate> 
        <Grid> 
         <Button Content="{Binding Title}"/> 
        </Grid> 
       </DataTemplate> 
      </GroupStyle.HeaderTemplate> 
      <GroupStyle.Panel> 
       <ItemsPanelTemplate> 
        <VariableSizedWrapGrid ItemWidth="240" ItemHeight="160" Orientation="Vertical" Margin="0,0,80,0"/> 
       </ItemsPanelTemplate> 
      </GroupStyle.Panel> 
     </GroupStyle> 
    </GridView.GroupStyle> 

    <GridView.ItemTemplate> 
     <!-- item template --> 
    </GridView.ItemTemplate> 
</GridView> 

Una risposta a questa domanda Grouping GridView in Windows 8 Metro App - pur non completamente lo stesso layout desiderato - dice che il layout desiderato non è possibile senza l'aggiunta di un ulteriore "tegola fittizio".

Mi chiedo se è possibile raggiungere il mio obiettivo - spostare l'intestazione dalla parte superiore del gruppo alla sinistra del gruppo - senza una "piastrella fittizia" extra.

risposta

2

È necessario modificare lo stile del contenitore dell'intestazione. In Visual Studio, fare clic con il GridView e selezionare

Edit Group Style -> Edit Generated Item Container (Container Style) -> Edit a Copy 

Vedrete l'intestazione di gruppo, che è un Content Control, e gli elementi gruppo, che sono un ItemsControl. Entrambi sono contenuti in una griglia che, di default, è composta da due righe. È possibile aggiungere una colonna, spostare l'intestazione di gruppo in Grid.Column=0 & Grid.Row=1 e si dovrebbe essere a posto.

Problemi correlati