2010-03-09 5 views
1

je un sous-menu dans un ContextMenu qui ItemSource est réglée à une expression commeEnsemble MenuItem à l'objet lié

ContextMenu.Items[i].ItemsSource = DatabaseInstance.GetAllObjects() 

Lorsque i gérer les clics de la ContextMenu i ai ce gestionnaire d'événements: XALM:

<ContextMenu MenuItem.Click="ContextMenu_Click"> 

C#:

 if (e.OriginalSource as MyObject == null) { 
      //Not MyObject. Choose action by comparing Header 
     } 
     else { 
      // The clicked item is a MyObject, send to another method 
     } 

Mais même si le OriginalSource était créé par un objet du type MyObject je reçois toujours est comme null.

Comment est-ce que je ferais ceci?

Répondre

0

Vous pouvez obtenir l'instance MenuItem dans le gestionnaire et vérifiez la DataContext

if(((FrameworkElement)sender).DataContext is MyObject) 
{ 
    // The clicked item is a MyObject, send to another method 
} 
+0

Merci. Bien que je devais utiliser e.OriginalSource au lieu de l'expéditeur – ErikTJ