Existe-t-il un moyen définitif de déterminer à partir de quel View (UserControl) une commande a été appelée? Par exemple, si j'ai deux vues, chacune liée au même ViewModel, comment puis-je déterminer à partir de quelle vue une commande particulière a été appelée? Avoir une commande distincte pour chaque vue ne ferait pas de différence dans ce scénario, car c'est un service externe qui devrait être notifié de la vue active particulière.Déterminer à partir de quel View/UserControl une commande a été appelée
0
A
Répondre
1
Je suppose que vous appelez la commande d'un usercontrol. Ainsi, si vous appelez la méthode someMethod par exemple, vous devez alors utiliser cette méthode pour prendre en paramètre un objet UserControl. En d'autres termes, vous devriez avoir quelque chose comme:
Public void someMethod(UserControl u, other params...){
If(u is SomeUsercontrol){
\\do somethin
} else if....
}
Et votre utilisateur conrtoll appeler cette méthode comme:
someMethod(this, .....) \\ the this keyword will send a UserControl object if you call that method within a UserControl class. In other words it will pass itself as a parameter
Questions connexes
- 1. Comment déterminer quel contrôle a été touché?
- 2. Comment déterminer quel index a été créé
- 3. Déterminer quelle ligne une fonction a été exécutée à partir
- 4. Déterminer si une commande Powershell a été réussie
- 5. Comment déterminer quel noeud a été cliqué. Silverlight treeview
- 6. Comment déterminer si une fonction a été appelée sans définir de variable globale
- 7. asp MVC: Est-il possible de déterminer comment une méthode de contrôleur a été appelée?
- 8. Puis-je déterminer à partir de quel app store mon application iPhone a été téléchargée?
- 9. Comment déterminer à partir de quel index un bouton a été cliqué dans un accordéon
- 10. Est-il possible de déterminer si une méthode d'instance a été appelée à partir d'une méthode prototype?
- 11. Déterminer quel élément a été cliqué à partir d'une autre classe
- 12. Déterminer quel événement UIButton a été déclenché dans l'objectif C
- 13. En utilisant une instruction If pour déterminer si une méthode a été appelée
- 14. Comment déterminer quel contrôle a été cliqué dans WPF UserControl?
- 15. déterminer quel bouton a été cliqué pour Android Peupler Listview
- 16. .NET - Comment déterminer quel Model3DGroup a été cliqué?
- 17. Déterminer quel élément a été cliqué dans ma ListBox?
- 18. Utilisez la journalisation Python pour déterminer où une méthode a été appelée
- 19. interrompant une méthode C# qui a été appelée à partir de VBA
- 20. Détection Quel élément a été sélectionné à partir d'un ListView
- 21. SystemEvents.SessionSwitch quel utilisateur a été verrouillé/déverrouillé
- 22. Comment affirmer qu'une action a été appelée
- 23. Accès à l'élément parent Élément à partir duquel la boîte de dialogue a été appelée
- 24. Comment déterminer à partir de quelle classe une méthode a été héritée?
- 25. Déterminer si une application Facebook a été mise en signet à partir de l'API Facebook REST
- 26. Quel objet a été cliqué lorsqu'un événement a été déclenché?
- 27. Dire comment la fonction a été appelée
- 28. Une méthode a été appelée à un moment inattendu. (Exception de HRESULT: 0x8000000E) exception a été levée par une méthode
- 29. Comment puis-je déterminer quel élément a été sélectionné à partir d'une liste créée dynamiquement à l'aide de jQuery?
- 30. Test si une méthode protégée a été appelée
Hm, qui est une excellente idée. Je n'avais pas pensé à passer le UserControl à travers le CommandParameter. Je ne suis pas sûr si cela casse la convention de MVVM (ou quels effets secondaires si pourraient avoir) mais cela vaut vraiment le coup. –
Je passerais un jeton (une chaîne de quelque sorte) dans le paramètre de commande s'il y a des différences basées sur l'endroit où la commande a été invoquée. – aqwert