поиск элемента управления по имени с помощью linq

#c# #winforms #linq #telerik #ribbon

#c# #winforms #linq #telerik #лента

Вопрос:

Привет, ребята, возможно ли найти элемент управления по его имени с помощью Linq?

Я могу выполнить итерацию всей коллекции contorl через для каждого

 foreach (RibbonTab t in testRibbon.CommandTabs)
                    {
                        if (t.Name == tab.Name)
                        {
                            blnFound= true;

                        }
                    }
  

Идея заключается в экономии памяти.
Я создаю вкладки ленты telerik динамически и хочу посмотреть, есть ли там вкладка, затем не создаю ее, также я хочу проверить ribbonbar, имеет ли он определенную RadRibbonBarGroup и RadButtonElement по имени, такому же, как для ribbontab, чтобы я не создавал дубликаты.

Извините, если я немного усложнил.

Ответ №1:

 bool found = testRibbon.CommandTabs.Cast<RibbonTab>().Any(t => t.name == tab.Name);
  

Ответ №2:

Да, это возможно с помощью Linq-to-WindowsForms. Смотрите следующую статью:

http://www.codeproject.com/KB/linq/LinqToTree.aspx#linqforms

Вы можете найти все элементы управления с заданным именем следующим образом:

 var namedControls= this.Descendants()
                       .Where(ctrl => ctrl.Name="NameToFind");