Я пытаюсь установить красный цвет выбранного элемента на TreeView:Как установить цвет выбранного элемента в TreeView
<TreeView x:Name="tvVisual" Grid.Row="0" Grid.RowSpan="2"
VirtualizingStackPanel.IsVirtualizing="True"
ItemsSource="{Binding Childrens,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
VirtualizingStackPanel.VirtualizationMode="Recycling"
>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding Childs,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<TextBlock Text="{Binding Path=Value.Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" >
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<Setter Property="FontWeight" Value="Normal" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="Background" Value="Bisque"/>
</Trigger>
<!-- Selected but does not have the focus -->
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Property="IsSelectionActive" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="Red"/>
</MultiTrigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
я взял какую-то часть кода из this Sheridan answer, но это не работает для меня. Если я изменил свойство IsSelected на IsExpanded - он работает. У меня getter \ setter: значение изменено.
Может быть, это может помочь: я выбираю и расширяю все подносы по коду.
Итак, как сделать элемент IsSelected установленным новым цветом? Спасибо!
P.S. и это strange- но геттерного \ сеттер PropertyChanged является нулевой ...
private bool _isSelected;
public bool IsSelected
{
get
{
return _isSelected;
}
set
{
_isSelected = value;
OnPropertyChanged("IsSelected"); //PropertyChanged is null.
}
}
Это не работает для меня –