У меня есть иерархическая структура данных с двумя подобными поддеревьями:
Iteration:
string Name
string Image
ObservableCollection<Iteration> SubIterations
ObservableCollection<Iteration> BacklogIterations
Я хочу представить два немного разных вида дерева, используя два вида дерева.
- Tree1: Показать подэтерации
- Tree2: отображение невыполненных заданий
Элементы должны отображаться одинаково, но дочерние элементы должны быть выбраны с использованием другого свойства.
т.е. Я хочу параметризовать ItemsSource в HierarchicalDataTemplate:
<HierarchicalDataTemplate x:Key="IterationItem"
ItemsSource="{Binding SubIterations}"
>
<StackPanel Orientation="Horizontal">
<Image Width="32" Height="32"
Margin="3,0" Source="{Binding Picture}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
<TreeView ItemsSource="{Binding RootSprintIteration}">
</TreeView>
<TreeView ItemsSource="{Binding RootBacklogIteration}">
</TreeView>
Как я могу получить HierarchicalDataTemplate во втором дереве, чтобы использовать другой ItemsSource?
Я не хочу дублировать все определение HierarchicalDataTemplate просто для изменения ItemsSource.