Problemas vinculados al contenido de un DataGridCell de WPF en XAML

Usé la siguiente publicación para implementar un datagrid enlazado a una lista de objetos dinámicos

¿Vinculando DynamicObject a un DataGrid con generación automática de columnas?

El método ITypedList GetItemProperties funciona bien, se muestra una cuadrícula con todas las columnas que describí.

Utilizo un PropertyDescriptor personalizado y anulo los métodos GetValue y SetValue como se describe en la publicación anterior, también implemento los métodos TryGetMember y TrySetMember en los objetos dinámicos.

así que básicamente tengo un ComplexObject: DynamicCobject con un Diccionario de campo y un ComplexObjectCollection implementando ITypedList e IList.

Todo esto funciona bien, excepto cuando vinculo el itemSource de DataGrid a la colección, las celdas mostrarán el nombre del tipo SimpleObject y realmente quiero implementar una plantilla para mostrar la propiedad Valor del SimpleObject en un bloque de texto.

He utilizado todo tipo de métodos para intentar obtener el SimpleObject subyacente, pero nada funciona y siempre obtengo el ComplexObject para la fila. Estoy usando columnas autogeneradas y esto siempre parece producir una columna de texto, este puede ser el problema, pero ¿por qué no puedo obtener el objeto SimpleObject subyacente de algún lugar en las propiedades de la celda?

A continuación sería mi solución ideal, pero esto no funciona.

<Grid>
    <Grid.Resources>
        <DataTemplate x:Key="DefaultNodeTempate">
            <ContentControl Content="{Binding RelativeSource={RelativeSource TemplatedParent}, 
                              Path=Content}">
                <ContentControl.Resources>
                        <DataTemplate DataType="local:SimpleObjectType">
                            <TextBlock Text="{Binding Value}" />
                        </DataTemplate>
                </ContentControl.Resources>
            </ContentControl>
        </DataTemplate>
    </Grid.Resources>
    <DataGrid ItemsSource="{Binding ElementName=mainWin, Path=DynamicObjects}">
        <DataGrid.Resources>
            <Style TargetType="DataGridCell">
                <Setter Property="ContentTemplate" Value="{StaticResource DefaultNodeTempate}" />
            </Style>
        </DataGrid.Resources>
    </DataGrid>
</Grid>

Cualquier sugerencia sería muy apreciada.

Gracias

Kieran

Respuestas a la pregunta(1)

Su respuesta a la pregunta