Я пытаюсь изменить фон 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>
Запустил приложение, но хотя я (программно) установил для свойства (Selected, не путать с IsSelected) значение true в «Child» TreeViewItem, фон не был установлен
Я посмотрел со Snoop и обнаружил, что у него нет желтого фона, как должен (конвертер срабатывает и возвращается правильно):
Однако, взглянув на Snoop, можно увидеть, что Желтая кисть была применена к этому TreeViewItem:
Однако, если я вручную установил фон для родительской Stackpanel ([016] в Snoop), он отражает это значение. Но по стилю не дойду ...
Любые идеи?
ОБНОВЛЕНИЕ: похоже, что у выбранного в данный момент элемента есть какой-то стиль, который нужно как-то исправить ...