Problemas vinculando a um o conteúdo de um DataGridCell WPF em XAML

Eu usei o seguinte post para implementar um datagrid ligado a uma lista de objetos dinâmicos

Vinculando DynamicObject a um DataGrid com geração automática de colunas?

O método ITypedList GetItemProperties funciona bem, uma grade é exibida com todas as colunas que descrevi.

Eu uso um PropertyDescriptor personalizado e substituir os métodos GetValue e SetValue conforme descrito na postagem acima, eu também implementar os métodos TryGetMember e TrySetMember nos objetos dinâmicos.

Então, basicamente, eu tenho um objeto ComplexObject: DynamicCobject com um dicionário de campo e um ComplexObjectCollection implementando ITypedList e IList.

Isso tudo funciona bem, exceto quando eu ligar o itemsSource do DataGrid para a coleção, as células irão mostrar o nome do tipo SimpleObject e eu realmente quero implementar um modelo para mostrar a propriedade Value do SimpleObject em um bloco de texto.

Eu usei todos os tipos de métodos para tentar obter o SimpleObject subjacente, mas nada funciona e eu sempre obtenho o objeto ComplexObject para a linha. Eu estou usando colunas autogeradas e isso sempre parece produzir uma coluna de texto, isso pode ser o problema, mas por que não posso ainda obter o SimpleObject subjacente de algum lugar nas propriedades da célula?

Abaixo seria a minha solução ideal, mas isso não 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>

Qualquer sugestão será muito bem-vinda.

obrigado

Kieran

questionAnswers(1)

yourAnswerToTheQuestion