#c# #wpf #treeview #grouping #hierarchicaldatatemplate
Вопрос:
Я изо всех сил пытался добавить групповой стиль к дочернему элементу древовидного представления внутри иерархической таблицы данных.
Вот рисунок моего древовидного изображения и то, как я хотел бы, чтобы данные были представлены.
У меня есть все, кроме серой границы вокруг групп внутри слоя 3. Я перепробовал несколько вещей, но ничего не вышло. Поэтому я надеюсь, что смогу найти здесь какую-то помощь.
Все слои имеют свою собственную модель представления.
- Модель Rootviewмодель содержит наблюдаемую коллекцию объектов Layer1
- Объект Layer1 содержит наблюдаемую коллекцию объектов Layer2
- Объект Layer2 содержит коллекцию объектов Layer3, а также задает дескриптор группы. Элементы сгруппированы по первым 5 символам имени объектов Layer3.
- Объект Layer3 содержит наблюдаемую коллекцию объектов Layer4
Это xaml моего древовидного представления
<TreeView
Name="Layer1"
ItemsSource="{Binding Path=Layer1s, IsAsync=True}">
<TreeView.Resources>
<Style BasedOn="{StaticResource TreeViewItemLayer1}" TargetType="TreeViewItem">
...
</Style>
</TreeView.Resources>
<TreeView.ItemContainerStyle>
<Style BasedOn="{StaticResource TreeViewItemLayer1}" TargetType="{x:Type TreeViewItem}">
...
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type vm:Layer1ViewModel}" ItemsSource="{Binding Path=Layer2s, IsAsync=True}">
<Grid
... some xaml elements
</Grid>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type vm:Layer2ViewModel}" ItemsSource="{Binding Path=Layer3CollectionView, IsAsync=True}">
<Grid>
some xaml elements
</Grid>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type vm:Layer2ViewModel}" ItemsSource="{Binding Path=Layer3CollectionView, IsAsync=True}">
<ItemsControl
x:Name="Layer4Items"
Grid.Column="1"
ItemsSource="{Binding Layer4s}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel
x:Name="wrapContent"
Width="350"
Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type models:Layer4Model}">
... some xaml elements
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>