リストビューで選択を解除したアイテムを選択解除した後、他のアイテムを選択してから選択しない限り、「IsMouseOver」の色が表示されないという問題があります。ItemContainerStyleでは、独自の値を定義したいので、フォーカス/アンフォーカスのデフォルトの色を透明に設定しました。誰かがこれを見て、「IsMouseOver」が選択解除されたアイテムで機能しない理由を教えてもらえますか?
xaml:
<ListView Name="lstPhoneCarrier" HorizontalAlignment="Left" VerticalAlignment="Bottom" Width="408" Height="145"
ItemsSource="{Binding ShowAllCarrierInfo, Mode=TwoWay}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Visible"
SelectionMode="Single">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</Style.Resources>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Yellow" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Label x:Name="lblCarrier" HorizontalAlignment="Left">
<Label.Content>
<StackPanel Orientation="Horizontal">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="Name" />
<Binding Path="Description" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Label.Content>
</Label>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=CarrierSelected}" Value="True" >
<Setter TargetName="lblCarrier" Property="Background" Value="Pink" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListView.ItemTemplate>