如何在运行时从Grid.Row获取控件?

时间:2010-11-28 12:20:00

标签: wpf

我有一个Grid,里面有3 Rectangle个。我需要在运行时获得对Grid.Row == 3的矩形的引用。

我如何才能访问它?

由于

1 个答案:

答案 0 :(得分:5)

var target = myGrid.Children
             .Cast<UIElement>() // make it into IEnumerable<UIElement>
             .OfType<Rectangle>() // and select only Rectangles
             .Where(c => Grid.GetRow(c) == 3);

这将枚举您网格的子项,并仅选择类型为RectangleGrid.Row == 3的子项。然后,您可以使用target.Single()或{{1}或任何其他查询评估函数来访问target.First()

<强>更新

更新以解决以下Ian的评论。很好地说,我完全同意(没有过多考虑原始的示例代码)。