WPF中的触发器不工作

WPF中的触发器不工作,wpf,triggers,controltemplate,Wpf,Triggers,Controltemplate,我有一个ListView,其中ListView.View为GridView 默认情况下,mouseOver正在工作,ListViewItem在鼠标悬停时高亮显示,单击时被选中。但是在我修改了控制模板之后,我得到了我想要的模板,但是高亮显示和选择消失了 我用了扳机,但它不起作用 这是我的密码 <Style x:Key="filesListViewItemStyle" TargetType="{x:Type ListViewItem}"> <Setter P

我有一个
ListView
,其中
ListView.View
GridView

默认情况下,
mouseOver
正在工作,
ListViewItem
在鼠标悬停时高亮显示,单击时被选中。但是在我修改了
控制模板之后,我得到了我想要的模板,但是高亮显示和选择消失了

我用了扳机,但它不起作用

这是我的密码

<Style x:Key="filesListViewItemStyle" TargetType="{x:Type ListViewItem}">
            <Setter Property="IsSelected" Value="{Binding FileIsSelected}"/>
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <Grid Height="40">
                            <GridViewRowPresenter/>
                            <Line X1="0.0" Y1="0.0" X2="{Binding ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListView}}}" Y2="0.0" StrokeThickness="1" StrokeDashArray="2" Stroke="Gray" />
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" Value="Green"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

在我的模板中,我实际上在两行
ListViewItem
之间添加了一行分隔符


我只是不明白为什么扳机不起作用

控件的背景属性仅在ControlTemplate中使用。您已将模板替换为不使用背景的模板,因此设置属性无效。您可以使用
{TemplateBinding Background}
将属性绑定到控件的背景。可能需要将网格的背景绑定到它:

<ControlTemplate TargetType="ListViewItem">
    <Grid Height="40" Background="{TemplateBinding Background}">
        <GridViewRowPresenter/>

请对照ListViewItem的默认ControlTemplate检查您是否遗漏了任何内容。或者你可以以此为基础,根据自己的喜好进行调整。我通常倾向于避免替换ControlTemplates(除非绝对需要),因为我不确定自己是否理解所有的复杂性。。