Le MouseButtonEventArgs
a une propriété OriginalSource
qui indique la UIElement
réelle qui a généré l'événement.
Afin de découvrir quel noeud cet élément vous appartient, vous devrez traverser l'arbre visuel pour le découvrir. J'utilise cette méthode d'extension pour aider à ce que: -
public static IEnumerable<DependencyObject> Ancestors(this DependencyObject root)
{
DependencyObject current = VisualTreeHelper.GetParent(root);
while (current != null)
{
yield return current;
current = VisualTreeHelper.GetParent(current);
}
}
Ensuite, en cas MouseRightButtonUp
vous pouvez utiliser ce code pour trouver l'article: -
TreeViewItem node = ((DependencyObject)e.OriginalSource)
.Ancestors()
.OfType<TreeViewItem>()
.FirstOrDefault();
Peut-être que je manque quelque chose, mais où est le nom "Ancêtres" dans votre deuxième morceau de code? – Telaclavo
@Telaclavo: Bien repéré, il manquait dans l'exemple d'utilisation où il aurait dû être. Édité. – AnthonyWJones