我有一个UserControl
有Button
. 在button_click
一个孩子UserControl
被添加到 Parent UserControl
。那个新添加的 ChildUserControl
有一个TextBox
.
现在, ParentUserControl
有另一个Button
单击时我想获取TextBox
child的值UserControl
。我怎样才能得到那个?
另外,假设UserControl
在 RunTime 上添加的子项超过 1。那么我怎样才能获得TextBox
所有这些子 UserControls 的值?
编辑和更新!
子用户控件有这个方法
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);
}
而这个方法
private void PreviewPdfFunc(object sender, MouseButtonEventArgs e)
{
foreach (UserControl cnt in UserControlList)
{
MessageBox.Show(cnt +" Total = " + StackPanelContainer.Children.Count);
}
}
首先,将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();
}
编辑
存在问题,即使用了错误的对象类型,这使我的答案出现问题。以前,类型不是 AddProductModule,而是 UserControl,在此之前它是 var(这是开始的主要问题)
如果您来到这里,您现在应该可以毫无问题地运行我的答案中的代码
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句