Child Parent UserControl WPF 中的 UserControl TextBox 值
Child UserControl TextBox value in Parent UserControl WPF
我有一个 parent UserControl
有一个 Button
。在 button_click
上 child UserControl
添加到 Parent UserControl
。新添加的 Child UserControl
有一个 TextBox
.
现在,Parent UserControl
在单击时有另一个 Button
我想获得 child UserControl
的 TextBox
的值。我怎样才能得到它?
另外,假设在 RunTime 上添加的 child UserControl
多于 1。那么我怎样才能获得所有这些 child UserControls 的 TextBox
值?
编辑和更新!
Child UserControl有这个方法
public string GetText()
{
return ProductNameBox.Text;
}
Parent 用户控件有这个
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
其次:创建一个 public 方法,您可以从您的父级调用该方法,例如
public string GetTBText()
{
return TextBoxExample.Text;
}
最后,要获取所有文本,您可以
foreach(AddProductModule item in AllControls)
{
string ValueOfTB = item.GetTBText();
}
编辑
问题是使用了错误的对象类型,这导致我的回答出现问题。以前,类型不是 AddProductModule,而是 UserControl,在此之前它是 var(这是开始的主要问题)
如果你来到这里,你现在应该能够 运行 我的答案中的代码没有问题
我有一个 parent UserControl
有一个 Button
。在 button_click
上 child UserControl
添加到 Parent UserControl
。新添加的 Child UserControl
有一个 TextBox
.
现在,Parent UserControl
在单击时有另一个 Button
我想获得 child UserControl
的 TextBox
的值。我怎样才能得到它?
另外,假设在 RunTime 上添加的 child UserControl
多于 1。那么我怎样才能获得所有这些 child UserControls 的 TextBox
值?
编辑和更新!
Child UserControl有这个方法
public string GetText()
{
return ProductNameBox.Text;
}
Parent 用户控件有这个
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
其次:创建一个 public 方法,您可以从您的父级调用该方法,例如
public string GetTBText()
{
return TextBoxExample.Text;
}
最后,要获取所有文本,您可以
foreach(AddProductModule item in AllControls)
{
string ValueOfTB = item.GetTBText();
}
编辑
问题是使用了错误的对象类型,这导致我的回答出现问题。以前,类型不是 AddProductModule,而是 UserControl,在此之前它是 var(这是开始的主要问题)
如果你来到这里,你现在应该能够 运行 我的答案中的代码没有问题