我在wpf应用程序中有2个用户控件。在我的用户控件A中,当我单击一个按钮时,它将从usercontrol B中获取文本框内的文本。当我单击A中的按钮时,如何访问文本框中的文本?
public partial class UserControlB : UserControl
{
public string TextBoxText { get { return this.TextBoxB.Text; } }
}
然后在usercontrol A中,当我点击按钮
private void button1_Click(object sender, RoutedEventArgs e)
{
String s = UserControlB.TextBoxText ;
}
答案 0 :(得分:2)
在B中添加一个属性,返回TextBox的文本:
public class UserControlB
{
public string TextBoxText { get { return this.TextBox1.Text; } }
}
在xaml中找到UserControl B的实例,然后按如下方式调用该属性:
string txt = this.UserControlB.TextBoxText;
答案 1 :(得分:0)
我知道这是一个简短的答案,但我认为FindControl(“textboxName”)应该有效。
string text = userControlB.FindControl(“textbox”)
答案 2 :(得分:0)
在您的问题中,您没有正确引用UserControlB
private void button1_Click(object sender, RoutedEventArgs e)
{
String s = UserControlB.TextBoxText ;
}
在这里,您要查看名为UserControlB
的类,而不是UserControlB
的对象或实例。换句话说,您没有指定要查看的 UserControlB
。如果屏幕上有五个UserControlB
,按钮如何知道要使用哪个?
阅读Classes and Objects以了解类(如UserControlB
)和对象(您可以在程序中引用和使用的项目)之间的区别。
如果您要使用页面或视图,UserControlB
应该有Name
。找到名称后,您可以像这样引用它:
// inside the control which contains your UserControlB
public MainPage()
{
// find it according to its Name property
UserControlB theOneIWantToUse = this.UserControlB_1;
// once you identify it, you can get the Text value from it
String s = theOneIWantToUse.Text;
}
答案 3 :(得分:0)
你可以试试这个:
在UserControl A中,
private void button1_Click(object sender,RoutedEventArgs e) {
MainWindow rootWindow = Application.Current.MainWindow as MainWindow; String s = (String)rootWindow.B.TextBoxB.text;
}