Comment appeler la méthode de la principale fenêtre WPF à partir de la fenêtre modale?
Comment appeler la méthode de la principale fenêtre WPF à partir de la fenêtre modale?
(En fait, je veux démarrer la minuterie de la MainWindow.xaml.cs lors de la fermeture de certains modèle de fenêtre.)
Merci!
Vous devez vous connecter pour publier un commentaire.
Ce que vous pouvez faire est avant d'ouvrir une deuxième fenêtre affecter la fenêtre principale, comme son propriétaire, puis à partir de la fenêtre modale appeler le Propriétaire de la propriété, il la jeta dans une MainWindow objet et vous serez en mesure d'exécuter la méthode.
Je voudrais suggérer ce genre de modèle est une odeur de code.
Si votre objectif est de passer de l'information à partir de la modales pour le parent, de mieux exposer les propriétés de la fenêtre modale et, après la fermeture, lire ces valeurs et effectuer les actions nécessaires dans le parent.
Si votre objectif est de transmettre les informations du parent à l'modal, puis la passer dans le constructeur ou propriétés publiques avant d'appeler
ShowDialog().
Il y a beaucoup de façons de le faire.
Vous peut surcharger le constructeur de la fenêtre modale de telle sorte que vous pouvez passer d'une référence à la fonction, ou la fenêtre principale. Ou, ajouter une propriété à la fenêtre.
Vous pouvez également démarrer la minuterie sur la ligne suivante dans la fenêtre principale de code qui montre la fenêtre modale.
Si ce modèle de fenêtre va s'ouvrir à partir de la
MainWindow
, comme cela disonsmodalWindow.ShowDialog()
pour cela il suffit d'ajouter le code après cet appel et il sera exécuté après la fenêtre modale fermé.
Si la fenêtre modale s'ouvre formulaire d'ailleurs, mais à la clôture doit exécuter le code sur complitely sans rapport avec le cadre, pouvez utiliser, par exemple, Les commandes ou RelayCommand (direct de déléguer l'appel).
Espère que cette aide.
Vous pouvez attacher un gestionnaire d'événement pour la "Fermeture" de l'événement de la boîte de dialogue modale, qui serait exécutée dans le programme principal lorsque la boîte de dialogue des incendies de cet événement.