Проблемы привязки к содержимому WPF DataGridCell в XAML
Я использовал следующий пост для реализации сетки данных, связанной со списком динамических объектов
Привязка DynamicObject к DataGrid с автоматической генерацией столбцов?
Метод ITypedList GetItemProperties работает нормально, отображается сетка со всеми столбцами, которые я описал.
Я использую собственный PropertyDescriptor и переопределяю методы GetValue и SetValue, как описано в посте выше, я также реализую методы TryGetMember и TrySetMember в динамических объектах.
так что в основном у меня есть ComplexObject: DynamicCobject с полем Dictionary и ComplexObjectCollection, реализующие ITypedList и IList.
Все это прекрасно работает, за исключением случаев, когда я связываю itemsSource DataGrid с коллекцией, в ячейках будет отображаться имя типа SimpleObject, и я на самом деле хочу реализовать шаблон для отображения свойства Value SimpleObject в текстовом блоке.
Я использовал все виды методов, чтобы попытаться получить базовый SimpleObject, но ничего не работает, и я всегда получаю ComplexObject для строки. Я использую автоматически сгенерированные столбцы, и это всегда создает текстовый столбец, это может быть проблемой, но почему я до сих пор не могу получить базовый SimpleObject где-то в свойствах ячейки?
Ниже будет мое идеальное решение, но это не работает.
<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>
Любые предложения будут высоко ценится.
Спасибо
Киран