У меня есть элемент управления ExtendedTreeView, который расширяет TreeView.Мой extendedTreeView имеет свойство Highlight, поэтому в отличие от обычного TreeView, я хочу, чтобы extendedTreeView выделял элементы на основе этого свойства Highlight, а не IsSelected.Итак, у меня есть стиль, определенный для TreeView, как показано ниже.
<Style x:Key="TreeViewStyle" TargetType="{x:Type TreeViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<Border Name="Bd"
Background="Transparent"
//other stuff
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Bd" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
А затем я определяю другой стиль для extendedTreeView, который основан на TreeViewStyle.Проблема в том, что, когда я пытаюсь установить «Bd», который является границей, он не может распознать его и не знает, о чем я говорю.
<Style x:Key="TreeViewStyle2" TargetType="{x:Type controls:ExtendedTreeView}" BasedOn="{StaticResource TreeViewStyle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate.Triggers>
<Trigger Property="controls:ExtendedTreeView.Highlight" Value="true">
<Setter TargetName="Bd" Property="Background" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Background}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Есть ли способ исправить это?или альтернативный способ сделать это?спасибо