Obtenga DataGrid dentro de ItemsControl del elemento enlazado

Tengo un ItemsControl que usa DataGrid en su plantilla de esta manera:

<ItemsControl Name="icDists" ItemsSource="{Binding Dists}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <DataGrid ItemsSource="{Binding}" Width="150" Margin="5" AutoGenerateColumns="False" IsReadOnly="True">
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Key" Binding="{Binding Key}" Width="1*" />
                    <DataGridTextColumn Header="Value" Binding="{Binding Value}" Width="1*" />
                </DataGrid.Columns>
            </DataGrid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

El ItemsControl está vinculado a unDists propiedad en mi modelo que se ve así:

ObservableCollection<Dictionary<string, string>> Dists;

¿Cómo puedo obtener el DataGrid que corresponde a un elemento en la propiedad Dists? He intentado con este código, que me da un ContentPresenter pero no sé cómo obtener el DataGrid de él:

var d = Dists[i];
var uiElement = (UIElement)icDistribucion.ItemContainerGenerator.ContainerFromItem(d);

He intentado subir al árbol conVisualHelper.GetParent pero no pudo encontrar el DataGrid.

Respuestas a la pregunta(1)

Su respuesta a la pregunta