6

私は MyGrid.Children UIElementCollection を持っています。StyleA に設定されたスタイルを持つすべての Rectangles を見つけて、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 に答える