Comment ajouter dynamiquement des RowDefinition ou ColumnDefinition à une Grille avec de liaison?

Je suis en train de créer un tableau avec un nombre variable de lignes et de colonnes. Je fais cela avec un ItemsControl qui a un Grid comme son ItemsPanel. Et je sais que je peux le mettre Grid.Row et Grid.Column de chaque élément par le biais de son ItemContainerStyle. Mais je ne sais pas comment le changer le nombre de lignes et de colonnes et de leurs tailles quand je ne peux pas accéder à la Grille par son nom.


Question:

Comment pouvez-vous modifier RowDefinitions ou ColumnDefinitions d'un Grid au moment de l'exécution à l'aide de seulement XAML et liaison avec pas de code-behind?


C'est le code XAML:

<ItemsControl Name="myItemsControl" ItemsSource="{Binding Cells}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid Name="myGrid">

                <Grid.RowDefinitions>
                    <!-- unknown number of rows are added here in run-time -->
                </Grid.RowDefinitions>

                <Grid.ColumnDefinitions>
                    <!-- known number of columns are added here in run-time -->
                </Grid.ColumnDefinitions>

            </Grid>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style.../>
    </ItemsControl.ItemContainerStyle>
</ItemsControl>

J'ai essayé d'ajouter un peu de RowDefinition dans le code derrière, mais je ne pouvais pas trouver un moyen d'accéder à myGrid par son nom (ou de toute autre manière), puisqu'il est à l'intérieur d'un ItemsPanelTemplate.

Je me demandais si est-il un moyen de faire ajouter ou modifier RowDefinitions au moment de l'exécution?

OriginalL'auteur Bizhan | 2012-01-25