Связь между пользовательскими элементами управления в Silverlight - PullRequest
0 голосов
/ 03 мая 2011

Я довольно новичок в Silverlight, поэтому у меня возникла проблема в связи между пользовательскими элементами управления.У меня есть пользовательские элементы управления, в которых есть кнопки, которые должны устанавливать некоторые свойства других пользовательских элементов управления.Например, для свойства IsEnabled должно быть установлено значение true, false, видимость и т. Д.Я на самом деле знаю одно решение, которое было бы что-то вроде:

class UserControl1: Usercontrol
{
public UserControl2 uc2;

private void Button1_Click (отправитель объекта, RoutedEventArgs e)
{
uc2.IsEnabled = False;// или uc2.SomeMethod ();
}
}

Аналогично для класса UserControl2, а затем на главной странице я добавляю только:
UserControl1.uc2 = UserControl2;

Мои вопросы: как я могу это сделать через обработчики событий?Или, может быть, есть какое-то лучшее решение?Простой пример будет приветствоваться.Спасибо.

1 Ответ

0 голосов
/ 03 мая 2011

Другой подход заключается в использовании Event Aggregator для такой коммуникации. Мы в нашем проекте используем агрегатор событий Prism. Пожалуйста, проверьте следующую тему .
При использовании агрегатора событий следует помнить следующее:

  • Держите их использование минимальным. Это связано с тем, что подписки на события с использованием агрегатора событий могут быть сложными для отладки. Так что в пределах одного класса используйте обычные события.
  • Назовите события при использовании агрегатора событий способом, который описывает событие. Например, если вы нажимаете кнопку «Сохранить», чтобы сохранить клиента, используйте имя события, например BeforeCustomerSave \ CustomerSaved, вместо SaveButtonClicked.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...