Problemy związane z zawartością WPF DataGridCell w XAML

Użyłem następującego postu do zaimplementowania datagrid powiązanego z listą dynamicznych obiektów

Powiązanie DynamicObject z DataGrid z automatycznym generowaniem kolumn?

Metoda GetItemProperties działająca w ITypedList działa poprawnie, wyświetlana jest siatka ze wszystkimi opisanymi przeze mnie kolumnami.

Używam niestandardowego PropertyDescriptor i nadpisuję metody GetValue i SetValue, jak opisano w powyższym poście, implementuję także metody TryGetMember i TrySetMember w obiektach dynamicznych.

więc w zasadzie mam ComplexObject: DynamicCobject z polem Dictionary i ComplexObjectCollection implementującym ITypedList i IList.

To wszystko działa poprawnie, z wyjątkiem sytuacji, gdy wiążę itemSource zbioru DataGrid z kolekcją, komórki będą wyświetlać nazwę typu SimpleObject i faktycznie chcę zaimplementować szablon, aby pokazać właściwość Wartość SimpleObject w bloku tekstu.

Użyłem różnego rodzaju metod, aby spróbować uzyskać podstawowy obiekt SimpleObject, ale nic nie działa i zawsze otrzymuję obiekt ComplexObject dla wiersza. Korzystam z autogenerated kolumn i to zawsze wydaje się produkować kolumnę tekstową, może to być problem, ale dlaczego nie mogę nadal uzyskać podstawowe SimpleObject skądś we właściwościach komórki?

Poniżej byłoby moim idealnym rozwiązaniem, ale to nie działa.

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

Wszelkie sugestie byłyby bardzo mile widziane.

Dzięki

Kieran

questionAnswers(1)

yourAnswerToTheQuestion