força wpf para construir árvore visual

Eu tenho ItemsControl com Grid como ItemsPanelTemplate

<ItemsControl ItemsSource="{Binding CellCollection}" Name="CellGrid">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid Name="grid" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

Eu crio alguns UserControl com este ItemControl dentro em code-behind, e então eu preciso criar RowDefinitions e ColumnDefinitons. Eu uso esse método para obter "grade":

private TChildItem FindVisualChild<TChildItem>(DependencyObject obj) where TChildItem : DependencyObject
    {
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
        {
            var child = VisualTreeHelper.GetChild(obj, i);

            if (child != null && child is TChildItem)
                return (TChildItem)child;

            var childOfChild = FindVisualChild<TChildItem>(child);

            if (childOfChild != null)
                return childOfChild;
        }

        return null;
    }

Mas se eu chamar esse método antes de mostrar UserControl ele retorna null, então eu não consigo encontrar o acesso "grid" e quando UserControl aparece ele exibido não como eu esperava.

Eu tentei google mas tudo que eu encontrei é suposição de que VisualTree não construindo para ItemControl até que ele mostrou no formulário.

Alguma sugestão? Obrigado e desculpe pelo mau inglês;)

questionAnswers(1)

yourAnswerToTheQuestion