Редактировать 2:
Это то, что я хочу сделать только с одним деревом:
http://img204.imageshack.us/img204/8218/sansreju.jpg
Изменить:
Я хочу знать, как сделать древовидное представление с различными стилями расширения с точки зрения уровня. В настоящее время я использую вложенные расширители.
Исходный вопрос:
Я пытаюсь получить WPF Treeview, который имеет разные стили расширителей с точки зрения уровня.
То, что у меня есть на самом деле, это:
список, который содержит разные шаблоны в зависимости от типа объекта с помощью селектора
<ListView Name="MyTreeView" ItemTemplateSelector="{StaticResource Selector}">
<!-- Items Template -->
<HierarchicalDataTemplate x:Key="ItemsTemplate" ItemsSource="{Binding Childrens}">
<TextBlock Text="{Binding Name}" Margin="5,0" VerticalAlignment="Center"/>
</HierarchicalDataTemplate>
<!-- SubNode Template -->
<DataTemplate x:Key="SubNodeTemplate">
<Expander Style="{StaticResource SubExpander}">
<TreeView ItemsSource="{Binding Childrens}"
ItemTemplateSelector="{StaticResource Selector}"/>
</Expander>
</DataTemplate>
<!-- Node Template -->
<DataTemplate x:Key="NodeTemplate">
<Expander Style="{StaticResource MainViewExpander}">
<ListView ItemsSource="{Binding Childrens}"
ItemTemplateSelector="{StaticResource Selector}"/>
</Expander>
</DataTemplate>
И это код позади объекта, используемого для сопоставления: я получил список (из IUpSlideItem) и применил его к MyTreeview.ItemsSource
Public Interface IUpSlideItem
Property Childrens As List(Of IUpSlideItem)
Property Name As String
End Interface
Public Class Item
Implements IUpSlideItem
Public Property Childrens As System.Collections.Generic.List(Of IUpSlideItem) Implements IUpSlideItem.Childrens
Public Property Name As String Implements IUpSlideItem.Name
End Class
Public Class Node
Implements IUpSlideItem
Public Property Childrens As System.Collections.Generic.List(Of IUpSlideItem) Implements IUpSlideItem.Childrens
Public Property Name As String Implements IUpSlideItem.Name
End Class
Теперь вопрос состоит в том, чтобы узнать, возможно ли только 1 древовидное представление с другим стилем расширения с точки зрения элемента типа. Мне это нужно, потому что я хочу выбрать только один элемент.
ControlTemplate
TreeViewItem вместоDataTemplate
и использовать там расширители. - person vortexwolf   schedule 28.09.2011