J'ai un ListView
, avec ListView.View
comme GridView
.Déclencheur dans WPF ne fonctionne pas
Par défaut, le mouseOver
fonctionne, ListViewItem
est mis en surbrillance lorsque je souris, et est sélectionné lorsque je clique dessus. Mais après avoir modifié le ControlTemplate
, j'obtiens le modèle que je veux, mais la surbrillance et la sélection ont disparu.
J'utilise le déclencheur, mais cela ne fonctionne pas.
Voici mon code.
<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>
Dans mon modèle, en fait j'ajouté une ligne comme séparateur entre 2 rangées de ListViewItem
. Je n'arrive pas à comprendre pourquoi la gâchette ne fonctionne pas!
S'il vous plaît vérifier contre le ControlTemplate par défaut ListViewItem pour voir si vous ne l'avez pas manqué quoi que ce soit. Ou vous pouvez prendre cela comme une base et le modifier à votre goût. J'ai généralement tendance à éviter le remplacement ControlTemplates (sauf si absolument nécessaire) parce que je ne suis pas sûr de comprendre toutes les subtilités .. – Gishu