2009-07-21 8 views
0

J'ai un menu contextuel situé dans une ressource de contrôle utilisateur.Comment accéder au menu contextuel dans UserControl Resources + Infragistics Control (WPF), C#

<UserControl.Resources> 

    <ContextMenu x:Key="Menu1"> 

     <MenuItem Header="View/Edit Contact" Command="{Binding SearchCommand}" CommandParameter="editcontact"/> 
     <MenuItem Header="View/Edit Company" Command="{Binding SearchCommand}" CommandParameter="editprimarycompany"/>   

    </ContextMenu> 


</UserControl.Resources> 

Cette ressource est liée à une grille WPF.

Maintenant, après que la grille est remplie de données, je fais un clic droit sur la grille. Et je suis capable de trouver le menu contextuel.

Le problème est de savoir comment savoir à l'exécution quel élément de menu a été cliqué?

J'ai essayé avec cette

var t = this.TryFindResource("Menu1") as Style;

dans le cas SelectedItemsChanged de la grille, mais il est nul.

S'il vous plaît aidez-moi et dites-moi dans quel événement de grille devrais-je être en mesure d'accéder à cela!

Merci d'avance.

J'utilise C#, WPF, contrôle Infragistics (WPF)

Répondre

2

Eh bien d'abord, pourquoi voudriez-vous jeter le Menu1 ContextMenu comme un style? Cela renverra toujours null car Menu1 n'est pas un style. Diffusez-le en tant que ContextMenu. Deuxièmement, il semble que vous ayez déjà tout en place pour déterminer quel élément de menu a été cliqué.

Vous avez passé une chaîne unique dans CommandParameter, que vous pouvez vérifier au moment de l'exécution.

+0

chaîne unique dans le paramètre CommandParameter, que vous pouvez vérifier au moment de l'exécution. Comment et dans quel cas? –

+0

Dans les événements CanExecute et Executed, les arguments d'événement incluent CommandParameter. Vérifiez le paramètre e. – Charlie

Questions connexes