Значение TextBox дочернего UserControl в WPF родительского UserControl - PullRequest
0 голосов
/ 02 октября 2018

У меня есть родитель UserControl, у которого есть Button.На button_click дочерний элемент UserControl добавляется в родительский элемент UserControl.У этого недавно добавленного Child UserControl есть TextBox.
. Теперь у Parent UserControl есть еще один Button, при нажатии которого я хочу получить значение TextBox child UserControl.Как я могу получить это?

Кроме того, допустим, что дочерний элемент UserControl, добавленный в RunTime, больше чем 1. Тогда как я могу получить TextBox значение всех этих дочерних элементов UserControls?

РЕДАКТИРОВАТЬ иОБНОВЛЕНИЕ!
Child 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);
        }
    }

1 Ответ

0 голосов
/ 02 октября 2018

Во-первых, добавьте каждое AddProductModule, которое вы создаете, в список (потому что вы должны их где-то хранить)

List<AddProductModule> AllControls = new List<AddProductModule>();
AllControls.Add(YourItem);

Во-вторых, у вас есть два варианта, чтобы получить текст

Первый: установите для кнопки public

Второй: создайте открытый метод, который вы можете вызывать из Parent, например,

public string GetTBText()
{
    return TextBoxExample.Text;
}

В конце, чтобы получить все тексты, вы могли бы

foreach(AddProductModule item in AllControls)
{
    string ValueOfTB = item.GetTBText();
}

РЕДАКТИРОВАТЬ

Проблема в том, что использовался неправильный тип объекта, из-за которого возникли проблемы с моим ответом.Раньше тип был не AddProductModule, вместо этого это был UserControl, а до этого это был var (что было основной проблемой для начала)

Если вы пришли сюда, теперь вы сможете запускать код вмой ответ без проблем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...