Я пытаюсь изменить TreeView для отображения значений TreeViewItem выше и ниже их дочерних элементов, например:
foo
|bar
||baz
|biz
станет
foo
|bar
||baz
| baz
|bar
|biz
biz
foo
Ниже приводится усеченное представление текущего шаблона элемента управления без гарантии, что этот фрагмент компилируется:
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="19"
Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander"
IsChecked="{Binding Path=IsExpanded,
RelativeSource={RelativeSource TemplatedParent}}"
ClickMode="Press"/>
<Border Name="Bd"
Grid.Column="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="PART_Header"
ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"/>
<TextBlock Text="Some Binding Goes Here"
Grid.Row="2"
Grid.Column="1"
Grid.ColumnSpan="2"/>
</Grid>
</ControlTemplate>
Повторяющиеся записи не будут иметь потомков, это будет просто отображаемое значение. Пока что я могу изменить TreeView ContainerStyle с помощью ControlTemplate, чтобы вставить TextBlock в соответствующее место в визуальном дереве. Какую привязку данных следует использовать для получения соответствующего отображаемого значения?