Поиск элемента управления во время выполнения, когда имя элемента управления известно в строке - PullRequest
0 голосов
/ 02 января 2012

Я создал гиперссылку динамически, как показано ниже

 Hyperlink objHyperlink = new Hyperlink();

В зависимости от значения ключа мне нужно установить существующие гиперссылки на objHyperlink

 if key == "Markets"
 then hyperlink to be set is  hyplnkIsActiveMarkets
 if key =="Budgets"
 then hyperlink to be set is  hyplnkIsActiveBudgets

Мой вопрос: как получить контроль во время выполнения, когда я знаю, что его имя «hyplnkIsActive» + «Markets» («Markets» получено из ключа)

Это что-то вроде FindControlByname("hyplnkIsActive"+"Markets");

Ответы [ 3 ]

1 голос
/ 02 января 2012

Попробуйте это

var myControl = (Control)this.FindName("Control Name");
0 голосов
/ 02 января 2012

Если у вас есть список всех доступных гиперссылок, попробуйте это

Hyperlink FindLinkByName(IEnumerable<Hyperlink> links,string linkName)
{
  return links
        .FirstOrDefault
         ( 
            link => Equals(link.GetValue(FrameworkElement.NameProperty),linkName) 
         );
}

И вы можете назвать его так:

FindLinkByName(list of links, "hyplnkIsActive"+"Markets")
0 голосов
/ 02 января 2012

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

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