父UserControl WPF中的子UserControl TextBox值

时间:2018-10-02 12:20:39

标签: c# wpf user-controls

我有一个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);
    }  

1 个答案:

答案 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(这是开头的主要问题)

如果您来到这里,您现在应该可以毫无问题地运行我的答案中的代码