3 votes

Meilleure façon d'interagir entre la barre d'application et le Conductor en utilisant Caliburn.Micro

J'ai essayé d'utiliser la barre d'application (avec des éléments AppBarButton de caliburn bien sûr) qui est censée changer son ensemble de boutons et leurs actions en fonction de l'élément pivot actif.

Les éléments sont représentés via des viewmodels d'écrans et leur parent est Conductor dont la vue contient la barre d'application.

Je suis vraiment bloqué avec ce qui précède et en gros je n'arrive pas à comprendre deux choses :

1) Comment puis-je accéder correctement à la barre d'application et lier les messages des boutons directement depuis mon viewmodel lorsque LoadedPivotItem est déclenché ? Quand j'ajoute des boutons en spécifiant leurs propriétés de message comme Message = "DoSomething" là, rien ne se passe au clic. Quand je le fais en XAML, tout fonctionne correctement. OnInitialize ou .ctor fonctionnent également bien mais j'ai besoin de savoir quel élément pivot a été sélectionné pour injecter les boutons corrects !

2) Lorsque l'action du bouton est déclenchée, comment puis-je la transmettre correctement à l'écran enfant pour qu'il appelle sa propre méthode ? L'agrégateur d'événements est-il le seul moyen correct de le faire ?

Donnez-moi s'il vous plaît des exemples de code si possible - je n'ai rien trouvé sur le web

2voto

Nznoonee Points 155

J'ai résolu le problème par moi-même.

Essentiellement, j'ai essayé plusieurs barres d'application tierces et les ai toutes rejetées. Cependant, on peut les examiner si intéressées :

Aucune d'entre elles n'a fonctionné pour moi, cependant uniquement en raison de caliburn dans mon projet. Dans des situations normales, elles conviendraient parfaitement car le premier permet de définir ButtonsSource et le second permet de définir des boutons personnalisés pour chaque élément pivot/panorama directement dans le XAML! Wow!

J'ai utilisé ce lien : http://www.markermetro.com/2010/07/technical/windows-phone-7-creating-that-elusive-reusable-application-bar/ qui a répondu à ma première question.

Quant à la deuxième question, je vérifie actuellement si le child viewmodel est actif et j'appelle ensuite sa méthode appropriée depuis le Conductor. Un peu sale je sais, mais à ce stade toujours mieux que rien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X