Как получить контроль для региона в призме - PullRequest
1 голос
/ 30 августа 2009

Кто-нибудь знает, как получить элемент управления, связанный с регионом в Prism.

Например, если у меня есть следующий код для регистрации региона

RegionManager.SetRegionName (Outlook.navigationContainer, "navigationContainer");

Как я могу получить элемент управления Outlook.navigationContainer через имя «navigationContainer»?

Спасибо, куча.

Ответы [ 4 ]

1 голос
/ 30 августа 2009

Регионы должны отвлекать от вас специфику управления регионом. Зачем вам нужен контроль?

1 голос
/ 31 августа 2009

Чтобы ответить на ваш вопрос:

Вы, вероятно, могли бы создать что-то, что отслеживает это, используя пользовательское Поведение Региона. Подробную информацию о RegionBehaviors можно найти здесь: http://msdn.microsoft.com/en-us/library/dd458944.aspx

Вы бы просто создали словарь, в котором отслеживалось бы название региона и связанный с ним элемент управления, поскольку у вас есть доступ к обоим из поведения региона.

Если вам нужен доступ к элементу управления в то время, когда представление добавляется в регион, вы можете использовать адаптер региона для этой цели (подробности по той же ссылке выше).

Однако , я согласен с Кентом на 150%, что я чувствую, что вы делаете то, что не должны. Если вы пытаетесь настроить макет или создать анимацию и т. Д., Вам следует сосредоточиться на стратегии, которая не требует от вас прерывания абстракции, которую дают вам Регионы.

Что-то такое простое, как стиль с триггерами данных, может дать вам то, что вы ищете, и не заставит вас слишком много знать о контейнере из кода, который добавляет представления в регион.

0 голосов
/ 17 сентября 2009

ThinkAbout,

Если вы хотите изменить свойство модуля, внедренного в регион, лучший способ сделать это - использовать перенаправленное событие или перенаправленную команду в зависимости от вашей ситуации.

То, как я это делаю, когда инициализируется модуль, я подписываюсь на события для свойств, которые нужно изменить. Если какой-либо другой модуль в системе должен изменить это свойство, я просто запускаю событие.

Надеюсь, это поставит вас на правильный путь.

С уважением Корнелиус Крюгер

0 голосов
/ 30 августа 2009

Не думаю, что вы можете легко получить связанный элемент управления через имя региона.

Метод SetRegionName устанавливает только свойство «RegionNameProperty» DependencyProperty для указанного элемента управления. Единственное, что вы можете сделать, это вернуть имя, когда у вас есть контроль.

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