2017-07-27 4 views
0

In meinem Hauptprogramm Winform habe ich eine Schaltfläche, mit der ich meine WPF-DLL in einem neuen Fenster öffne. Ich lade meinen Wert über einen Consuktor in das WPF-Fenster. Das Problem ist, es zurückzubekommen.Wert von WPF-Formular an Winform übergeben

initialisieren ich WPF-Fenster mit diesem Code auf Button auf winform:

var wpfwindow = new MyWpfProgram.MainWindow(MyString); 
ElementHost.EnableModelessKeyboardInterop(wpfwindow); 
wpfwindow.Show(); 

In meinem WPF-Programm Ich habe Schaltfläche Speichern, die irgendwie den Wert wieder passieren sollte. Wie kann ich das erreichen?

Antwort

1

In MainWindow Sie ein Ereignis

public event EventHandler<SaveEventArgs> Save; 

mit SaveEventArgs sein wie

public class SaveEventArgs : EventArgs 
{ 
    public MySaveData Whatever { get; set; } 
} 

jetzt schaffen können - wenn Sie das WPF-Fenster erstellen - Sie können zu diesem Ereignis abonnieren und zu handhaben es angemessen

var wpfwindow = new MyWpfProgram.MainWindow(MyString); 
wpfwindow.Save += WpfWindow_OnSave; 
ElementHost.EnableModelessKeyboardInterop(wpfwindow); 
wpfwindow.Show(); 

[...] 

private void WpfWindow_ONSave(object sender, SaveEventArgs eventArgs) 
{ 
    // do whatever you need 
}