2010-06-30 10 views
0

J'ai un shell avec quelques boutons et onglets et quelques modules dans mon application. Chaque module a une vue avec des éléments tels que les grilles de données, les panneaux de pile, les boîtes de texte, etc. Ils ont tous un attribut de nom. Maintenant, quand je déclenche un événement sur un shell (comme cliquer sur un bouton), je voudrais pouvoir quelque chose avec ces éléments (comme effacer toutes les informations écrites par l'utilisateur dans les zones de texte fournies). Le problème est, shell ne voit pas ces éléments et ne peut pas les reconnaître. Y a-t-il un moyen d'y accéder?Prisme WPF accédant aux éléments de la vue depuis le shell

Merci pour vos suggestions.

Répondre

1

Je vous suggère d'adopter une approche similaire à celle de l'implémentation de Stocktrader Reference avec CompositeCommands. Fondamentalement, une CompositeCommand est une implémentation de ICommand qui contient une collection d'autres ICommands. Dans le RI, les CompositeCommands sont exposées en tant que propriétés statiques sur une classe disponible centralement.

Dans votre cas, vous pourriez avoir une ClearCommand composite. Le viewmodel pour le shell exposerait cela à la vue de la coquille afin que vous puissiez y connecter, disons, votre bouton Clear.

Les viewmodels pour les différents modules seraient alors accrocher dans ce ClearCommand:

GlobalCommands.ClearCommand.RegisterCommand(new DelegateCommand(x => ClearAllFields()));