2009-10-19 10 views
0

J'essaie de me familiariser avec PRISM et son fonctionnement avec Silverlight/WPF. Est-il possible d'utiliser DelegateCommands pour ouvrir une nouvelle fenêtre contextuelle (Silverlight Window). Si oui, comment pourrais-je faire quelque chose comme ça?DelegateCommand Débutant Question

La plupart des exemples que j'ai vus jusqu'à présent impliquent l'utilisation de DelegateCommands pour récupérer des données (ou une autre action similaire).

Si quelqu'un a des suggestions, je l'apprécierais.

Répondre

4

J'utilise la commande delegate pour exécuter essentiellement une méthode et/ou transmettre des données au ViewModel. Une fenêtre contextuelle est un outil de présentation, donc je ne vois rien de mal à ajouter un gestionnaire d'événement à un bouton et à charger un popup depuis codebehind. Je suggère une approche plus infrastructure/réutilisable en créant une sorte de IDialogService ou en instanciant vos popups ViewModel/View et en exposant la vue via l'injection de vue ou la liaison à un contrôle de contenu.

+0

+1 pour IDialogService. Vous devez également utiliser une sorte de ServiceLocator, de sorte que vous puissiez définir différents services selon que vous exécutez des tests unitaires ou que vous exécutez réellement l'application. –

+0

C'est le chemin à parcourir ici, c'est sûr. Pour le localisateur de service, utilisez celui utilisé par Prism (Microsoft.Practices.ServiceLocation.ServiceLocator.Current). –

+0

Plus tard, j'ai trouvé quelque chose en ligne qui utilise l'interface IDialogService pour faire exactement ce que vous avez suggéré. C'était une solution intéressante à ce type de problème. Merci! – coson

Questions connexes