2012-08-24 29 views
5

Tengo un GridView normal, que muestra datos agrupados. Mi objetivo es mover el encabezado (un botón) desde la parte superior del grupo a la izquierda del grupo.Cambiar ubicación del encabezado 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 respuesta a esta pregunta Grouping GridView in Windows 8 Metro App - aunque no le llevó el mismo diseño que desee - dice que el diseño deseado no es posible sin la adición de una "baldosa de prueba" adicional.

Me pregunto si es posible lograr mi objetivo: mover el encabezado desde la parte superior del grupo a la izquierda del grupo, sin un "mosaico ficticio" adicional.

Respuesta

2

Debe editar el estilo del contenedor del encabezado. En Visual Studio, haga clic en el GridView y seleccionar

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

Verá el encabezado de grupo, que es un control de contenido, y los elementos del grupo, que son una ItemsControl. Ambos están contenidos dentro de una grilla que, en el valor predeterminado, es simple dos filas. Puede agregar una columna, mover el Encabezado de grupo al Grid.Column=0 & Grid.Row=1 y debería estar listo.

Cuestiones relacionadas