ListView – Comment binder la couleur d’un item sélectionné

Commençons par poser le contexte : nous avons une catégorie « Production », qui a une propriété « Color » avec pour valeur #0094DD, ainsi qu’une liste d’Items. De base lorsqu’on clique sur un item de la liste, sa couleur de sélection est celle du thème Windows 10. Ce qui n’est pas très joli.

L’idée est donc d’adapter la couleur de sélection d’un item et cela se fait en éditant le ItemContainerStyle. Plus précisément sur les propriétés SelectedForeground et SelectedBackground.

Et voici le nouveau rendu.

C’est mieux car maintenant on maîtrise la couleur de sélection. Néanmoins on aimerait bien que cette couleur de sélection soit directement bindée à la couleur de la catégorie. On peut le faire ainsi :

Le résultat visuel correspond à notre attente. Néanmoins techniquement ce n’est pas parfait dans le cas où on souhaiterait généraliser notre style pour être utilisé dans différentes pages. Mais malheureusement UWP ne permet pas de faire un binding RelativeSource AncestorType comme en WPF.