你的问题和绑定无关,Trigger也是可以的,只是会失效。
所选 ListViewItem 的背景颜色由 ListViewItem 的 ControlTemplate 中的 VisualStateManager 设置,如MSDN 示例中所示:
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border x:Name="Border" Background="Transparent" ...>
<VisualStateManager.VisualStateGroups>
...
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected" />
<VisualState x:Name="Selected">
<Storyboard>
<ColorAnimationUsingKeyFrames
Storyboard.TargetName="Border"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0"
Value="{StaticResource SelectedBackgroundColor}" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
...
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
不管你设置item的背景是什么值,它都会被设置为{StaticResource SelectedBackgroundColor}
item状态为 时的值Selected
。但是,您可以将以下行添加到 ListViewItem 样式中以覆盖 SelectedBackgroundColor 资源的值:
<Style TargetType="ListViewItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green" />
</Style.Resources>
...
</Style>