我有一個ListView
,其中ListView.View
爲GridView
。WPF中的觸發器不起作用
默認情況下,mouseOver
正在工作,ListViewItem
在鼠標懸停時突出顯示,並在單擊它時被選中。但是在我修改了ControlTemplate
後,我得到了我想要的模板,但高亮和選擇消失了。
我使用觸發器,但它不工作。
這是我的代碼。
<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>
在我的模板,我居然加了行2列ListViewItem
之間的隔板。
我只是不明白爲什麼觸發器不工作!
請檢查ListViewItem的默認ControlTemplate,看看你是否沒有遺漏任何東西。或者你可以把它作爲一個基地,並根據你的喜好調整它。我通常傾向於避免ControlTemplates更換(除非絕對需要),因爲我不確定我是否理解所有錯綜複雜的問題。 – Gishu 2010-08-13 02:36:35