J'ai une fenêtre qui affiche une autre fenêtre. Je veux que la deuxième fenêtre puisse retourner un objet à la première fenêtre quand un bouton est pressé. Comment ferais-je cela?Valeur de retour de fenêtre WPF
Répondre
Vous pouvez exposer une propriété sur la deuxième fenêtre, afin que la première fenêtre puisse la récupérer.
public class Window1 : Window
{
...
private void btnPromptFoo_Click(object sender, RoutedEventArgs e)
{
var w = new Window2();
if (w.ShowDialog() == true)
{
string foo = w.Foo;
...
}
}
}
public class Window2 : Window
{
...
public string Foo
{
get { return txtFoo.Text; }
}
}
Cela ne fonctionne pas parce que l'utilisateur interagit avec la fenêtre et appuie sur un bouton avant que je veux que la fenêtre parente obtienne la valeur. – Reflux
Je l'ai compris. Le problème était qu'il devrait être if (w.ShowDialog() == false). – Reflux
@Reflux: êtes-vous sûr? ShowDialog renvoie false lorsque l'utilisateur annule la boîte de dialogue, donc vous ne voulez probablement pas prendre en compte la valeur dans ce cas –
Si vous ne voulez pas exposer une propriété, et que vous voulez faire l'usage un peu plus explicite, vous pouvez surcharger ShowDialog
:
public DialogResult ShowDialog(out MyObject result)
{
DialogResult dr = ShowDialog();
result = (dr == DialogResult.Cancel)
? null
: MyObjectInstance;
return dr;
}
Je sais que c'est un ancien, mais je cherchais la même information pour une application WPF sur laquelle je travaille. J'ai trouvé ce site pour être vraiment utile:
http://www.dreamincode.net/forums/topic/206458-the-right-way-to-get-values-from-form1-to-form2/
Ceci est écrit pour Windows Forms, mais si vous ignorez la partie sur les valeurs de passer à la nouvelle fenêtre, il travaillait encore et avait quelques informations vraiment bon.
Sur une note côté, pour transmettre des valeurs à la nouvelle fenêtre, c'était vraiment utile:
Bienvenue dans StackOverflow. Alors que les liens que vous avez fournis peuvent être utiles, il est toujours préférable de mettre directement les points principaux à votre message. De cette façon, votre réponse ne devient pas inutile si un lien est brisé et est également plus facile à utiliser et plus utile. Donc, je recommande d'éditer votre réponse en conséquence. Meilleures salutations – YakovL
- 1. Valeur De retour de la fenêtre HTML
- 2. Valeur de retour de propriété de dépendance WPF
- 3. formulaire de retour valeur de retour
- 4. WPF Dispatcher Invoke la valeur de retour est toujours null
- 5. Fenêtre WPF modifiant la valeur du contrôle d'une autre fenêtre
- 6. setlocale valeur de retour
- 7. Valeur de retour PHP
- 8. Jquery valeur de retour
- 9. Valeur de retour de XXTEA
- 10. Valeur de retour de oci_parse
- 11. ASP.NET modal popup valeur de retour
- 12. @selector et valeur de retour
- 13. Lecture json valeur de retour
- 14. JUnit Valeur de retour int
- 15. problème valeur de retour NSDictionary
- 16. setInterval/SetTimeOut Valeur de retour
- 17. WebGl Uniformes valeur de retour
- 18. Passer une valeur de retour
- 19. WPF - Contrôle 2ème fenêtre de la 1ère fenêtre
- 20. fenêtre de message déclenchée par le navigateur retour/fenêtre fermer
- 21. Affichage de la valeur de retour d'une méthode dans la fenêtre de la montre
- 22. Attribuer une valeur de DatePicker dans une fenêtre à DatePicker deuxième dans une autre fenêtre WPF
- 23. Ratio d'aspect de fenêtre WPF
- 24. Comment utiliser la valeur de retour d'une feuille pour décider de fermer ou non une fenêtre?
- 25. Retour d'une valeur d'un iFrame dans une fenêtre contextuelle à sa fenêtre parente
- 26. Valeur de retour de l'objet littéral patern
- 27. Blackberry: Valeur de retour de Coordinates.distance()
- 28. valeur de retour de procédure stockée
- 29. Obtenez la valeur de retour de JOptionPane
- 30. python: valeur de retour de __new__
est la nouvelle fenêtre modale de la première fenêtre? – Robaticus
Au début, je ne savais même pas ce qu'une fenêtre modale était mais je l'ai compris. Le code de Thomas ci-dessous avec une légère modification a fonctionné. – Reflux