WPF Grade como ItemsPanel para uma lista vinculada dinamicamente a um ItemsControl

Estou usando uma grade como ItemsPanel para uma lista vinculada dinamicamente a um ItemsControl. O código abaixo está funcionando - com um problema restante: não consigo encontrar uma maneira de inicializar dinamicamente as Definições de coluna e Definições de linha da grade. Como conseqüência, todos os valores são colocados um em cima do outr

<ItemsControl ItemsSource="{Binding Cells}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemContainerStyle>
        <Style>
            <Setter Property="Grid.Row" Value="{Binding RowIndex}"/>
            <Setter Property="Grid.Column" Value="{Binding ColumnIndex}"/>
        </Style>
    </ItemsControl.ItemContainerStyle>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Value}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Lembre-se de que estou procurando uma resposta de acordo com o padrão MVVM. Portanto, subclassificação e código por trás são apenas soluções alternativas, mas não há soluçõe

questionAnswers(2)

yourAnswerToTheQuestion