C# - Return variable vom untergeordneten Fensters übergeordnetes Fenster in WPF
Ich habe ein Haupt-Fenster mit dem Namen form1. in form1 habe ich einen button, wenn er gedrückt wird, öffnet form2 (form2.ShowDialog()). In form2 habe ich eine Schaltfläche "Überprüfen". Wenn der Benutzer klickt auf "Check" sollte es tun, einige Validierung und, wenn erfolgreich erstellt ein string-Objekt und gibt es zurück zu form1 hinzu. Irgendwelche Ideen auf, wie diese umzusetzen ist? Ich will nicht, etwas zurückzugeben, wenn der Benutzer das Fenster schließt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen, ein Ereignis in Ihrem zweiten Fenster die Parameter des event-Delegaten enthalten, was auch immer Informationen, die Sie weitergeben wollen:
Dann das Hauptfenster abonnieren Sie das Ereignis, das zu tun, was es will, mit der information:
popup.Check += value => label.Content = value, label2.Content = value;
??Diese Antwort zwar nicht perfekt auf den Gegner wird mehr nützlich für die Menschen, dass google sich hier für die Allgemeine Lösung der Frage, wie die Kommunikation zwischen windows:
Gibt es überhaupt keinen Grund, um Ereignisse zu erstellen, um Zugriff auf Objekte des Hauptfensters von Sie Anwendung. Sie können einfach rufen Sie Sie auf den popup-code und die mit ihm getan werden:
Könnte dies auf mehreren wegen erreicht werden. Die Methode Servy gepostet, ist sehr gut und vollbringt das, was Sie brauchen. Ich würde es vorziehen, um zu sehen, die
Action<sting>
übergeben als parameter an den Konstruktor übergeben und benanntcallback
es ist also klar, was es für verwendet wird, aber das ist nur eine Präferenz-Sache.Die andere Methode, die ist ziemlich gut darin, dies getan wird, über Messaging. Die MVVMLight Toolkit bietet ein großartiges kleines feature, in der es für Aufgaben wie diese.
Schritt 1: erstellen einer stark typisierten Nachricht:
Schritt 2: Bestimmen, wo und Wann veröffentlichen Sie diese Nachricht.
Setp 3: nachdem Sie die Nachricht senden, müssen Sie in der Lage sein, das zu erhalten, Meldung: