从子窗口传递到父窗口

Ana*_*tos 5 c# wpf parent-child

我想问一下,

我有一个叫做的窗口MainWindow和另一个叫做的窗口ImportForm.在MainWindow我打电话

private void generate_Window(int num_chart) 
{ 
    Window ownedWindow = new ImportForm(num_chart); 
    ownedWindow.Owner = this;      
    ownedWindow.Show(); 
}
Run Code Online (Sandbox Code Playgroud)

在子窗口我做了一些东西,我产生了一些变量.像var1,var2,var3.

我希望当子窗口接近返回var1var2,var3MainWindow并调用一个函数让我们说import_chart(var1, var2, var3)..

任何帮助都会得到充分的肯定.谢谢

Ada*_*dam 6

这似乎是一个尴尬的设计选择.无论如何,这是你如何做到这一点:

MainWindow.cs:

private void generate_Window(int num_chart)
{
    Window ownedWindow = new ImportForm(num_chart, import_chart); 
    ownedWindow.Owner = this; 
    ownedWindow.Show();
}

private void import_chart(int n, string s, bool b)
{
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

ImportForm.cs:

private Action<int, string, bool> callback;
public ImportForm(int num_chart, Action<int, string, bool> action)
{
    InitializeComponent();
    Closed += ImportForm_Closed;
    callback = action;
}

private void ImportForm_Closed(object sender, EventArgs e)
{
    callback(0, "Test", false);
}
Run Code Online (Sandbox Code Playgroud)

只需将Action更改为您需要的参数类型(并调整ImportForm_Closed(...)以使用它们).

如果有什么不清楚,请告诉我.