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

Yan*_*hof 0 wpf

我有一个Grid3 Rectangle秒.我需要获得对Grid.Row == 3运行时具有的矩形的引用.

我怎样才能访问它?

谢谢

Jon*_*Jon 5

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

这将列举网格的孩子,只能选择那些类型的Rectangle和具有Grid.Row== 3.然后,您可以使用target.Single()target.First()或任何其他查询评估函数来获得访问Rectangle.

更新:

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