如何在 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。
这是最简单最基本的方法,你最好练习一下。
这就是所谓的全局变量。
我已经定制了带有文本框和按钮的 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。
这是最简单最基本的方法,你最好练习一下。
这就是所谓的全局变量。