У меня есть 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
.
Я просто не понимаю, почему триггер не работает!
Пожалуйста, проверьте, не установлен ли по умолчанию ControlTemplate для ListViewItem, если вы ничего не пропустили. Или вы можете взять это как базу и настроить ее по своему вкусу. Обычно я стараюсь избегать замены ControlTemplates (если это абсолютно необходимо), потому что я не уверен, что понимаю все тонкости. – Gishu