У меня есть древовидное представление, которое выглядит так:
Данные из этого древовидного представления поступают из ViewModel с вложенными объектами. Классы этого объекта выглядят так. Я изменил часть кода в целях конфиденциальности:
public class RegistroModel {
public ObservableCollection < ClassA > ClassA { get; set; };
}
public class ClassA {
public ObservableCollection < ClassB > ClassB { get; set; }
}
public class ClassB {
public ClassC ClassC { get; set; }
}
xaml этого TreeView выглядит так:
<TreeView ItemsSource="{Binding Registros}" TreeViewItem.Selected="TreeView_Selected" >
<TreeView.Resources>
<HierarchicalDataTemplate DataType="{x:Type vm:RegistroModel}" ItemsSource="{Binding ClassA}">
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type entities:ClassA}" ItemsSource="{Binding ClassB}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate DataType="{x:Type entities:ClassB}">
<TextBlock Text="{Binding ClassC.Name}"/>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
Теперь, что я хочу сделать, это обернуть некоторые HierarchichalDataTemplates внутри расширяемой метки, чтобы она выглядела следующим образом:
Я хочу обернуть HierarchicalDataTemplate из RegistroModel
меткой INGRESOS, соответствующей Модель ClassA
с этикеткой CAUSAS PENALES и модель ClassB
с этикеткой DELITOS. Я не знаю, нужно ли использовать Labels o TreeViewItems для обертывания HierarchicalDataTemplate.
Есть ли способ сделать это, не меняя структуру ViewModel и изменяя только XAML? Как лучше и проще всего это сделать?