我有一个UserControl
的父母Button
。在button_click
上,孩子UserControl
被添加到父UserControl
中。新添加的子UserControl
有一个TextBox
。
现在,父级UserControl
的另一个Button
被单击时,我想获得子级TextBox
的{{1}}的值。我该怎么办?
另外,假设运行时添加的子项UserControl
大于1。那么我如何获得所有这些子项UserControls的UserControl
值?
编辑和更新!
儿童UserControl具有此方法
TextBox
家长UserControl拥有此
public string GetText()
{
return ProductNameBox.Text;
}
并且此方法
public List<UserControl> UserControlList = new List<UserControl>();
public void NewProductModule(object sender, RoutedEventArgs e)
{
AddProductModule productModules = new AddProductModule();
UserControlList.Add(productModules);
}
答案 0 :(得分:0)
首先,将您创建的每个AddProductModule
添加到列表中(因为您必须将它们存储在某处)
List<AddProductModule> AllControls = new List<AddProductModule>();
AllControls.Add(YourItem);
第二,您有两个选项来获取文本
首先:将按钮设置为公开
第二个:创建一个公共方法,例如,您可以从您的父母那里调用
public string GetTBText()
{
return TextBoxExample.Text;
}
最后,要获取所有文本,您可以
foreach(AddProductModule item in AllControls)
{
string ValueOfTB = item.GetTBText();
}
EDIT
有一个问题,就是使用了错误的对象类型,这使我的回答出现了问题。以前,该类型不是AddProductModule,而是UserControl,而在此之前是var(这是开头的主要问题)
如果您来到这里,您现在应该可以毫无问题地运行我的答案中的代码