Как я могу изменить содержимое родительского элемента управления через событие дочернего элемента управления? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть три пользовательских элемента управления.ControlC является родителем ControlB, ControlB является родителем ControlA. Теперь я хочу использовать событие ControlA для изменения содержимого ControlC (скажем, изменить содержимое ControlC на ControlD).Я могу сделать это, если есть только 2 элемента управления, я не знаю, чтобы сделать это с 3 элементами управления.Есть идеи?Для 2-х контролей решение:

        private void ChangeParentContent()
    {
        UserControlB userControlB = (UserControlB)this.Parent;
        userControlB.Content = new userControlC();
    }

1 Ответ

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

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

Перечитав ваш вопрос пару раз, я думаю, что лучше пойму, для чего вы собираетесь.@ Служба верна, вы не должны изменять родительский элемент от дочернего.Вместо этого создайте события, на которые родители могут подписаться.Когда событие запускается, вы можете обработать событие в родительском.Мой оригинальный ответ (ниже) предусматривает пару путей, которые вы можете использовать для достижения этой цели.

ОРИГИНАЛ

Пара идей:

  1. ControlB может подписаться на событие ControlA.Затем ControlB запускает собственное событие, на которое подписан ControlC.
  2. Измените Modifier ControlA на public, чтобы вы могли получить к нему доступ непосредственно из ControlC (ControlB.ControlA.Event += ...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...