J'ai une liste d'objets et un ListView où j'affiche cette liste. Un tel objet a des propriétés, elles sont liées aux colonnes de ListView.Modifier la couleur de premier plan d'un élément ListView seulement dans une colonne
<ListView x:Name="_fileNameList" FontSize="12" SourceUpdated="_fileNameList_SourceUpdated" TargetUpdated="_fileNameList_TargetUpdated">
<ListView.View>
<GridView x:Name="FileNameAttributes" >
<GridViewColumn Header="File Name" Width="200" DisplayMemberBinding="{Binding fileName}"/>
<GridViewColumn Header="Size" Width="80" DisplayMemberBinding="{Binding size}"/>
<GridViewColumn Header="Date" Width="80" DisplayMemberBinding="{Binding date}"/>
<GridViewColumn Header="Time" Width="80" DisplayMemberBinding="{Binding time}"/>
<GridViewColumn Header="New Name" Width="300" DisplayMemberBinding="{Binding newFileName}"/>
</GridView>
</ListView.View>
</ListView>
Cette partie fonctionne correctement.
Maintenant, je veux changer la couleur de premier plan de la colonne newFileName
dans une seule rangée, mais seulement si elle est égale à la 'fileName' dans la même rangée. Est-ce que je peux le faire en XAML ou dois-je aller au code derrière le fichier? Je préférerais pouvoir le gérer en XAML, parce que je pense que c'est un problème de pure conception, mais je ne sais pas par où commencer ou où mettre cela, (puis-je faire des comparaisons de chaînes en XAML? J'ai donc essayé de gérer cela dans le code derrière le fichier. Je pensais qu'il devait y avoir un événement qui est levé quand le ListView a changé, j'ai essayé l'événement SourceUpdated
, mais il n'est pas entré quand je change le contenu de ma liste. Le prochain problème serait, comment accéder à ces éléments ListView ...
Quelqu'un peut-il me donner une idée de comment je peux résoudre ce problème?
Je ne l'ai jamais fait moi-même, mais vous pouvez essayer de créer un convertisseur personnalisé (comme ceux pour la visibilité) et lier la propriété Foreground à ce convertisseur. – mslliviu