Как добавить TreeViewItem в середину двух HierarchicalDataTemplates? - PullRequest
2 голосов
/ 17 июня 2020

У меня есть древовидное представление, которое выглядит так:

enter image description here

Данные из этого древовидного представления поступают из 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 внутри расширяемой метки, чтобы она выглядела следующим образом:

enter image description here

Я хочу обернуть HierarchicalDataTemplate из RegistroModel меткой INGRESOS, соответствующей Модель ClassA с этикеткой CAUSAS PENALES и модель ClassB с этикеткой DELITOS. Я не знаю, нужно ли использовать Labels o TreeViewItems для обертывания HierarchicalDataTemplate.

Есть ли способ сделать это, не меняя структуру ViewModel и изменяя только XAML? Как лучше и проще всего это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...