Я пытаюсь изменить фон TreeViewItems в TreeView, основываясь на свойстве (булево), прикрепленном к TreeViewItems.Я пробовал это:
<local:BooleanToBrushConverter x:Key="BooleanToBrushConverter"
TrueBrush="Yellow" FalseBrush="Transparent"/>
<local:TreeViewEx ItemsSource="{Binding Items}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="True"/>
<Setter Property="Background" Value="{Binding Path=(local:TreeViewItemExtensions.Selected),
RelativeSource={RelativeSource Self},
Converter={StaticResource BooleanToBrushConverter}}"/>
<TreeView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Green"/>
</TreeView.Resources>
...
</local:TreeViewEx>
Запустил приложение, но хотя я (программно) установил свойство (Выбрано, не путать с IsSelected) в true на «Дочернем» TreeViewItem фонне был установлен
Я посмотрел с Snoop и обнаружил, что у него нет желтого фона, как должно (конвертер срабатывает и возвращает правильно):
Однако, взглянув на Snoop, он показывает, что желтая кисть была применена к этому TreeViewItem:
Однако, если я вручнуюустановите фон на родительскую панель стека ([016] в Snoop), это отражает это значение.Но я не могу добраться до этого по стилю ..
Есть идеи?
ОБНОВЛЕНИЕ : Кажется, что выбранный в данный момент элемент имеет какой-то видстиль, который нужно как-то решать ..