Considérons un ListBox qui peut ne pas être complètement rempli avec ListBoxItems lors de l'exécution. Je veux personnaliser le ContextMenu pour ce ListBox selon si l'utilisateur clique avec le bouton droit sur l'un des ListBoxItems ou sur l'espace vide où aucun élément n'existe.Comment personnaliser un ContextMenu pour un ListBox wpf
Le problème que je rencontre est que dans ce dernier cas, aucun événement ListBox n'est déclenché, seul l'événement ContextMenuOpening est déclenché. Et à partir de cet événement, je ne peux pas comprendre comment vérifier si l'utilisateur a cliqué sur un ListBoxItem existant ou non.
J'ai regardé toutes les propriétés et les événements de ListBox, mais je ne peux pas proposer une approche qui différencie ces deux cas. J'ai envisagé d'utiliser des déclencheurs de style mais, encore une fois, le problème principal est qu'un clic droit dans l'espace vide ne déclenche aucun événement ListBox. J'ai également passé en revue les liens que SO suggère mais aucun ne parle à cette question.
Comment cela peut-il être fait?
Pourriez-vous donner un code pour expliquer votre question plus clairement? – Iron
Pourriez-vous montrer la logique que vous utilisez et les événements auxquels votre logique est connectée? Vous pouvez créer deux ressources de ContextMenu et les utiliser dans ListBox.ContextMenu et ListBoxItem.ContextMenu. – Redouane
@Iron Il ne s'agit pas d'une question de codage, mais plutôt d'une question conceptuelle: comment détecter ce que l'on clique sur un clic droit dans un ListBox partiellement rempli. Si j'avais du code, je l'aurais montré. Mais voir ma solution ci-dessous. – SezMe