C# - 在WPF中将子窗口中的变量返回到父窗口

bar*_*ama 7 c# variables wpf

我有一个名为form1的主窗口.在form1我有一个按钮,按下它将打开form2(form2.ShowDialog()).在form2中,我有一个名为"Check"的按钮.当用户点击"Check"时,它应该进行一些验证,如果成功,则创建一个字符串对象并将其返回到form1.有关如何实现这一点的任何想法?当用户关闭窗口时,我不想返回任何内容.

Ser*_*rvy 10

在第二个窗口中创建一个事件,让事件委托的参数包含您要传递的任何信息:

public class Popup : Window
{
    public event Action<string> Check;

    public void Foo()
    {
        //fire the event
        if (Check != null)
            Check("hello world");
    }
}
Run Code Online (Sandbox Code Playgroud)

然后主窗口可以订阅该事件以使用该信息执行所需操作:

public class Main : Window
{
    private Label label;
    public void Foo()
    {
        Popup popup = new Popup();
        popup.Check += value => label.Content = value;
        popup.ShowDialog();
    }
}
Run Code Online (Sandbox Code Playgroud)