我使用文本框和按钮自定义UserControl。我将这个UC添加到主窗口,现在我希望当我点击UC内的按钮时,来自UC文本框的文本被转移到主窗口中的文本框或标签中。如果我是正确的,我应该制作自定义事件并将其绑定到某个地方或类似的东西,但我找不到任何有用的东西,所以我很乐意提供一些帮助或一个好的教程。
答案 0 :(得分:5)
您可以通过使用UC中的属性轻松实现所需,并在MainWindow中订阅此属性的propertychanged事件。
在UserControl中
public class UserControl : BindableBase
{
private string textboxText;
public string TextBoxText
{
get { return textboxText; }
set { SetProperty(ref textboxText,value); }
}
}
因此,当文本框失去焦点时,属性textboxText会更新。
在MainWindow
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;
}
}
希望你明白这一点。如果需要任何进一步的帮助,请恢复。
答案 1 :(得分:-1)
最简单的方法必须是这样,你最好练习,因为这可以基本上多次使用。
在类的字段中声明数据类型,如
string textwhichuserinputed;
并在Event或Method(wherever)中为变量赋值,例如
textwhichuserinputed= UCtextBox.Text;
赋值后,变量的值将设置为UCtextBox.Text。在赋值之前,该值为null。
然后,您可以使用textwhichuserinputed在类中的任何地方。
这是最简单,最基本的练习方法 这被称为全局变量。