2010-05-17 4 views
0

J'ai une classe statique appelée commandes. L'une des commandes routées est appelée ConfirmNoPrint. Je veux exécuter dans le code derrière de mon comme contrôle personnalisé ceci:Définir RelativeSource CommandTarget dans RoutedCommand.Execute dans le code derrière

Commands.ConfirmNoPrint.Execute(null, [WHAT_DO_I_PUT_HERE]); 

Dans la classe de contrôle personnalisé J'ai une instance de liaison dont la RelativeSource propriété est définie comme ceci:

_mainControlBinding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(UserControl), 2); 

Puis-je utiliser l'une des propriétés de _mainControlBinding pour obtenir l'instance de IInputElement que je dois passer en tant que second paramètre de Commands.ConfirmNoPrint.Execute?

La liaison de commande pour ConfirmNoPrint est le parent de mon contrôle personnalisé, mais il se trouve dans un assembly différent. Je ne peux pas ajouter de référence car cela provoquerait une référence circulaire.

J'aboie complètement le mauvais arbre?

+0

Est-ce une commande d'interface utilisateur, comme quand quelqu'un clique sur un bouton ou quelque chose? – user7116

Répondre

0

Les commandes routées sont, par définition, routées. Si je comprends bien votre problème, il vous suffit de passer this comme deuxième paramètre de votre commande (en supposant que vous êtes dans la classe de contrôle). La commande fera bouillir l'arbre visuel jusqu'à ce qu'il rencontre la commande liant le parent.

+0

Ah, tx. Je suppose que je pensais sérieusement à celui-ci. :) –

Questions connexes