Astuce pour la gestion du ‘Back’ en UWP

En Windows 10 UWP, on se retrouve généralement à gérer le Back (retour en arrière) dans nos applications. Ce qui selon nos besoins peut nous amener à des cas complexes de navigation.

Par exemple, un type de page master/details où la page details va ouvrir un popup puis le fermer quand l’action sera finie. Il sera donc compliqué de faire une gestion propre de notre navigation car on se retrouvera dans plusieurs de nos pages, à gérer les différents back, mobile et pc, et donc, avoir plusieurs fois ce type d’élément :

Néanmoins il faut faire attention en utilisant les événements Back. En effet, si vous avez plusieurs évènements de ce type attaché à vos pages, tous les événements seront levés en même temps quand l’utilisateur fera un back. Il vous faudra donc vous désabonner des événements qui ne seront pas nécessaires, mais cela peut être fastidieux et pas vraiment très propre quand votre application comporte un certain nombre de pages.

A la place, je vous propose une petite classe gérant tous les back (PC, mobile, et souris) qui pourrait simplifier votre vie de développeur :

Attention pour le mobile, pensez bien à rajouter la dll dans vos références.

Cette classe a pour but de gérer une « pile » d’action, qui lancera la dernière action qui a été attachée dans vos différentes pages.

Pour cela, il vous suffit d’initialiser la classe une seule fois :

puis dans les différentes pages où vous souhaitez gérer votre back, faire :

Vous pourrez ainsi gérer le back indépendamment des autres pages sans vous souciez de la gestion des événements et d’avoir un seul et unique événement back lancé.