Сначала удалите триггер IsSelected=False
. Он автоматически отменит все изменения, когда IsSelected
станет не True
.
Во-вторых, переместите триггеры на TreeView.Resources
:
<TreeView.Resources>
<Style TargetType="TreeViewItem">
.....
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="BorderBrush" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
</TreeView.Resources>
В-третьих, удалите тег TreeViewItem
. Используйте Border
непосредственно внутри HierarchicalDataTemplate
. Это потому, что все, что вы помещаете внутрь HierarchicalDataTemplate
, уже создано внутри некоторого TreeViewItem
.
В-четвертых, привязать фон границы и границу кисти к элементам TreeViewitem
Background="{Binding Background, RelativeSource={RelativeSource AncestorType=TreeViewItem}}"
BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource AncestorType=TreeViewItem}}"