У меня есть MyGrid. Дети UIElementCollection, я хотел бы найти все Прямоугольники в нем, которые имеют там набор стилей к StyleA и устанавливают их на StyleB.
Я хотел бы использовать LINQ, если это возможно, таким образом, я могу избежать противного вложенного цикла.
Что-то вроде этого псевдокодирует:
var Recs = from r in MyGrid.Children
where r.Style == StyleA && r.GetType() == typeof(Rectangle)
select r as Rectangle;
затем:
foreach(Rectangle r in Recs)
r.Style = StyleB;
Гуру LINQ может помочь мне улучшить свой LINQ-fu?
Ваш код был почти правильным, но у UIElements нет свойства Style... Вы можете фильтровать дочерние элементы грида по их типу :
var recs = from r in MyGrid.Children.OfType<Rectangle>()
where r.Style == StyleA
select r;
foreach(Rectangle r in recs)
r.Style = StyleB;