wpf fuerza para construir arbol visual

Tengo ItemsControl con Grid como ItemsPanelTemplate

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

Creo algo de UserControl con este ItemControl dentro del código subyacente, y luego necesito crear RowDefinitions y ColumnDefinitons. Yo uso este método para obtener "rejilla":

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;
    }

Pero si llamo a este método antes de mostrar UserControl, devuelve un valor nulo, por lo que no puedo encontrar el acceso a la "cuadrícula" y cuando UserControl aparece, no se muestra como esperaba.

Intenté buscar en Google, pero todo lo que encontré es la suposición de que VisualTree no está compilando para ItemControl hasta que se muestra en el formulario.

¿Alguna sugerencia? Gracias y lo siento por mal inglés;)

Respuestas a la pregunta(1)

Su respuesta a la pregunta