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

swift

1个回答

写回答

rxms

2025-07-04 20:26

+ 关注

AI
AI

使用WPF (Windows Presentation Foundation) 进行应用程序开发时,常常需要在子窗口中获取用户输入的数据,并将这些数据返回到父窗口中进行处理。在C#中,我们可以通过一些技巧来实现这个目标。本文将介绍如何在WPF中将变量从子窗口返回到父窗口,并提供一个简单的案例代码来说明这个过程。

在WPF中创建子窗口

首先,我们需要在WPF应用程序中创建一个子窗口。可以通过创建一个新的窗口类并在该类中定义需要的界面元素来实现。在子窗口类中,我们还需要定义一个变量来存储需要返回的数据。

下面是一个简单的子窗口类的示例代码:

csharp

public partial class ChildWindow : Window

{

public string Result { get; set; }

public ChildWindow()

{

InitializeComponent();

}

private void SaveButton_Click(object sender, RoutedEventArgs e)

{

Result = TextBox.Text;

this.Close();

}

}

在上面的代码中,我们定义了一个名为Result的公共属性,用于存储从子窗口返回的数据。在子窗口的构造函数中,我们调用了InitializeComponent方法来初始化界面元素。SaveButton_Click方法是在用户点击保存按钮时触发的事件处理程序,它将用户在文本框中输入的数据赋值给Result属性,并关闭子窗口。

在父窗口中打开子窗口

接下来,我们需要在父窗口中打开子窗口,并获取从子窗口返回的数据。在父窗口类中,我们可以使用ShowDialog方法来打开子窗口,并在子窗口关闭后获取返回的数据。

下面是一个简单的父窗口类的示例代码:

csharp

public partial class MAInWindow : Window

{

public MAInWindow()

{

InitializeComponent();

}

private void OpenChildWindowButton_Click(object sender, RoutedEventArgs e)

{

ChildWindow childWindow = new ChildWindow();

childWindow.ShowDialog();

string result = childWindow.Result;

if (!string.IsNullOrEmpty(result))

{

// 在这里可以对返回的数据进行处理

MessageBox.Show("返回的数据是:" + result);

}

}

}

在上面的代码中,我们创建了一个名为OpenChildWindowButton_Click的事件处理程序,该程序在用户点击打开子窗口按钮时触发。在事件处理程序中,我们创建了一个子窗口实例,并调用ShowDialog方法以模态方式打开子窗口。这意味着用户必须在子窗口关闭之前完成操作。

然后,我们可以通过访问子窗口的Result属性来获取从子窗口返回的数据。在这个例子中,我们简单地使用MessageBox来显示返回的数据,但你可以根据实际需求对数据进行任何处理。

在本文中,我们学习了如何在WPF中将变量从子窗口返回到父窗口。我们通过创建一个子窗口类,在该类中定义一个变量来存储需要返回的数据。然后,我们在父窗口中打开子窗口,并通过访问子窗口的属性来获取返回的数据。

这种技术可以在许多情况下使用,例如从子窗口中获取用户输入的表单数据,或者从子窗口中选择一个项目并将其返回到父窗口中。希望本文对你理解如何在WPF应用程序中实现这一目标有所帮助。

如果你对WPF窗口间的数据传递还有其他疑问,可以参考官方文档或查找更多的教程和示例代码来进一步学习和探索。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号