problème intéressant lié aux commandes de tir à partir des éléments de menu contextuel ...Passage origine de ContextMenu dans WPF Commande
Je veux déclencher une commande pour insérer une ligne dans mon contrôle, InsertRowCmd. Cette commande doit savoir où insérer la ligne.
Je pourrais utiliser Mouse.GetPosition(), mais cela me donnerait la position de la souris actuellement, ce qui serait sur l'élément de menu. Je veux obtenir l'origine du menu contextuel à la place.
Est-ce que quelqu'un a des suggestions sur la façon de passer l'origine du menu contextuel en tant que paramètre à la commande?
Exemple de code:
<UserControl x:Name="MyControl">
<!--...-->
<ContextMenu x:Name="menu">
<MenuItem Header="Insert Row" Command="{x:Static customCommands:MyCommands.InsertRowCmd}" CommandParameter="?"/>
</ContextMenu>
</UserControl>
Mes idées actuelles sont les suivantes:
-Utiliser cliquez sur Gestionnaire à la place afin que je puisse trouver l'origine dans le code. Le problème est que je devrais alors gérer l'activation/désactivation.
-Heatle cliquez sur l'événement et enregistrez l'origine du menu contextuel. Transmettez cette information enregistrée dans la commande. J'ai vérifié que les événements de clic se déclenchent avant l'exécution de la commande.
Des idées?
EDIT:
J'utilise de CommandSinkBinding pour acheminer Josh Smith la commande de manipulation dans ma classe ViewModel. Ainsi, le code qui gère l'exécution de la commande ne sait rien de la vue.
Je pense que vous voulez dire "CommandParameter" au début pas "ConverterParameter"? –
Souhaitez-vous élaborer sur l'idée de comportement ci-joint? –
Oui, merci - fixe et élaboré. –