0
我有一个问题,其中取消选择的项目在我的列表视图中没有显示“IsMouseOver”的颜色后,我取消选择它,除非我选择其他,然后选择它。在我的ItemContainerStyle中,我将focus/unfocus的默认颜色设置为透明,因为我想定义自己的值。任何人都可以看看这个,并告诉我为什么“IsMouseOver”不适用于取消选择的项目?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>
通过增加你的建议,为的SelectedItem属性不能正常工作。 – user1884032 2013-03-27 15:03:09
是的,这是我提到的,因为项目被选中,因此鼠标悬停事件不会被提出。所以,为此,你必须使物品不可聚焦。这意味着它在选择和鼠标悬停之间进行权衡。 – 2013-03-27 15:26:39