簡體   English   中英

父UserControl WPF中的子UserControl TextBox值

[英]Child UserControl TextBox value in Parent UserControl WPF

我有一個具有Button的父UserControl button_click ,子UserControl被添加到Parent UserControl 新添加的Child UserControl具有TextBox
現在,父級UserControl單擊另一個Button時,我想獲取子級UserControlTextBox的值。 我該怎么辦?

另外,假設運行時添加的子UserControl大於1。那么如何獲得所有這些子UserControls的TextBox值?

編輯和更新!
子UserControl具有此方法

    public string GetText()
    {
        return ProductNameBox.Text;
    }  

父UserControl擁有此

    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(這是開頭的主要問題)

如果您來到這里,您現在應該可以毫無問題地運行我的答案中的代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM