#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");