Pregunta

¿Existe un mecanismo equivalente al ItemsControl.ItemTemplate que funciona con un Grid? Tengo una colección de elementos y me gustaría presentarlos como filas en un Grid.Column para poder asignar <=> a los elementos individuales dentro de la plantilla (en oposición a las filas en un control de lista). ¿Es esto posible en WPF utilizando controles estándar?

¿Fue útil?

Solución

Ok, use un ItemsControl con la propiedad adjunta Grid.IsSharedSizeScope="true" aplicada. Luego, para su ItemTemplate, usa un <Grid> como lo haría normalmente, excepto que ahora, cuando agrega ColumnDefinition s, establece el atributo SharedSizeGroup en un nombre que es único para cada columna. Entonces, por ejemplo:

<ItemsControl Grid.IsSharedSizeScope="true">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition SharedSizeGroup="MyFirstColumn" />
                    <ColumnDefinition SharedSizeGroup="MySecondColumn" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Text="{Binding MyFirstProperty}"/ >
                <TextBlock Grid.Column="1" Text="{Binding MySecondProperty}"/ >
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Para obtener más información sobre IsSharedSizeScope y SharedSizeGroup, verifique esta sección del SDK . Cabe señalar que RowDefinitions también tiene SharedSizeGroup para que también pueda hacer diseños horizontales.

Otros consejos

Tal vez entendí mal su problema, pero ¿no es exactamente lo que a ¿GridView lo hace?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top