Как получить элемент из ControlUser в другом ControlUser

Есть ControlUser внутри него есть еще ControlUser добавленный таким образом:

xmlns:controluser="clr-namespace

В ControlUser являющимся родителем есть TextBox, как мне его достать в коде ControlUser, который внутри этого родителя?


Ответы (1 шт):

Автор решения: Programmer

Нужно создать метод с событием PropertyChanged:

public class TextEvent : INotifyPropertyChanged
{
    public string text;
    public string Text
    {
        get
        {
            return text;
        }
        set
        {
            text = value;
            PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Text"));
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
}

В ControlUser, который родитель нужно подписаться на событие PropertyChanged:

public MainControlUser()
{
   Models.TextEvent.PropertyChanged += TextEvent;
}

public void TextEvent(object sender, PropertyChangedEventArgs e)
{
    if(e.PropertyName != null)
    {
        InputTextBox.Text += Models.TextEvent.Text;
    }
}

В ControlUser, который внутри ControlUser родителя повесить на все кнопки событие клика, которое по нажатию будет отправлять текст в метод с событием PropertyChanged:

private void TextSend(object sender, RoutedEventArgs e)
{
    string text = "tyt text";
    Models.TextEvent.Text = text;
}
→ Ссылка