如何在 WPF 中将字符串从用户控件传递到其父控件 Window?

How to pass a string from user control to its parent Window in WPF?

我已经定制了带有文本框和按钮的 UserControl。我将此 UC 添加到 main window,现在我希望当我单击 UC 内的按钮时,来自 UC 文本框的文本被传输到 main window 中的文本框或标签。如果我是正确的,我应该制作自定义事件并将其绑定到某处或类似的地方,但我找不到任何有用的东西,所以我很乐意提供一些帮助或好的教程。

您可以通过在 UC 中使用 属性 并在 MainWindow 中订阅此 属性 的 属性changed 事件轻松实现您的需要。

在用户控件中

public class UserControl : BindableBase
{

    private string textboxText;
    public string TextBoxText
    {
       get { return textboxText; }
       set { SetProperty(ref textboxText,value); }
    }

}

因此,当文本框失去焦点时,属性 文本框文本会更新。

在主窗口中

public class MainWindow
{
    public UserControl UserControlInstance = new UserControl();
    public string textPropertyMainWindow;
    public MainWindow()
    {
       UserControlInstance.TextBoxText.PropertyChanged += PropertyChangedHandler;
    }

    private void PropertyChangedHandler(object obj)
    {
       textPropertyMainWindow = UserControlInstance.TextBoxText;
    }
}

希望你明白了。如果需要任何进一步的帮助,请回复。

最简单的方法一定是这个,你最好多练习,因为这个基本上可以多次使用

在 class 的字段中声明数据类型,例如

string textwhichuserinputed;

并在事件或方法(任何地方)中为变量赋值,

textwhichuserinputed= UCtextBox.Text;

赋值后,变量的值将设置为UCtextBox.Text。在赋值之前,值为空。

然后,之后,您可以在 class 中的任何地方使用 textwhichuserinputed。

这是最简单最基本的方法,你最好练习一下。
这就是所谓的全局变量。