0
저는 Grid
이고 3은 Rectangle
입니다. 런타임에 Grid.Row == 3
이있는 사각형에 대한 참조를 가져와야합니다.런타임에 Grid.Row에서 컨트롤을 얻는 방법?
어떻게 액세스 할 수 있습니까?
감사
저는 Grid
이고 3은 Rectangle
입니다. 런타임에 Grid.Row == 3
이있는 사각형에 대한 참조를 가져와야합니다.런타임에 Grid.Row에서 컨트롤을 얻는 방법?
어떻게 액세스 할 수 있습니까?
감사
var target = myGrid.Children
.Cast<UIElement>() // make it into IEnumerable<UIElement>
.OfType<Rectangle>() // and select only Rectangles
.Where(c => Grid.GetRow(c) == 3);
이 그리드의 자식을 열거 및 유형 Rectangle
의이고 Grid.Row
가 == 3. 다음 target.Single()
또는 target.First()
또는 기타 쿼리 평가 기능을 사용할 수 있습니다이있는 만 선택됩니다 Rectangle
에 액세스 할 수 있습니다.
업데이트 : 아래 이안의 코멘트를 해결하기 위해 업데이트
. 아주 잘 말했어, 나는 완전히 동의한다 (원래 예제 코드에 너무 많은 생각을하지 않았다).
Panel.Children은 이전의 제네릭 컬렉션 인터페이스 만 구현하므로 예제가 그대로 컴파일되지 않습니다. ". Children"과 ".Where"사이에 ".Cast()"을 입력하여이 문제를 해결할 수 있습니다. 또한 유형별로 필터링하는 연산자를 사용하여 람다를 단순화 할 수 있습니다. myGrid.Children.Cast () .OfType () .Where (c => Grid.GetRow (c) == 3); - "OfType ()"이 의도를 더 명확하게 표현한 것 같습니다. –