6

我有一个 MyGrid.Children 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 吗?

4

1 回答 1

15

您的代码几乎是正确的,但 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;
于 2010-02-25T22:41:22.050 回答