WPF: HierarchicalDataTemplate ItemsPanel
У меня есть `` TreeViewwhich uses a custom
ItemsPanelto show the first level of items in a
StackPanel, but I need to show subitems in a
StackPaneltoo. The problem is, the second level of items are shown in a
WrapPanel, and as
HierarchicalDataTemplatedoesn't have an
Свойство ItemsPanel` Я не уверен, как это сделать. Это мой xaml:
<TreeView x:Name="treGlobalCards">
<TreeView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel IsItemsHost="True" Orientation="{Binding Orientation,RelativeSource={x:Static RelativeSource.TemplatedParent}}"
MaxWidth="{Binding ActualWidth,RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}}}"/>
</ItemsPanelTemplate>
</TreeView.ItemsPanel>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate x:Key="CardTypeTemplate" ItemsSource="{Binding Cards}">
<TextBlock Text="{Binding Path=CardType}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
1 ответ
Решение
Создайте новый DataTemplate, который использует StackPanel, и задайте для "ItemTemplate" HierachicalDataTemplate этот новый DataTemplate.
т.е.
<DataTemplate x:Key="someTemp">
<StackPanel />
</DataTemplate>
<HierarchicalDataTemplate x:Key="hierTemp" ItemSource="{Binding}" ItemTemplate="{StaticResource someTemp}" />