2010-04-29 4 views

답변

1

글쎄, 당신은 쉽게 충분히 LINQ 쿼리와 함께이 작업을 수행 할 수 있습니다 : 주어진 행 & 열 교차점에 여러 컨트롤이있을 수

public IEnumerable<UIElement> GetElementsAtPosition(Grid grid, int row, int column) 
{ 
    return grid.Children.OfType<UIElement>().Where(c => Grid.GetRow(c) == row && Grid.GetColumn(c) == column); 
} 

이, IEnumerable을 반환 할 필요가있다. 행/열 스패닝 (요소가 다른 행이나 열에서 시작하여 그 행에 걸쳐있는 경우를 포착하지 않음)을 수행하는 경우이 방법도 매우 안정적이지 않습니다.

EDIT 감사합니다. @ wpfwannabe이 작업을 수행하는 데 필요한 LINQ 운영자에게 감사드립니다. 그것은 여전히 ​​UIElementCollection이 IEnumerable <UIElement>을 구현하지 않는다는 것을 알아 채고 있습니다.

+0

감사합니다. System.Linq 네임 스페이스를 사용하여 추가할까요? – user302933

+0

System.Linq가 있지만 그리드에 문제가 있습니다 .Children.Where 내가 뭘 놓치지 않으시겠습니까? 감사합니다 – user302933

+0

System.Windows.Controls.UIElementCollection '' '및 확장 메서드가없는' '에 대한 정의가 없습니다.'System.Windows.Controls.UIElementCollection '형식의 첫 번째 인수를 받아들입니다. – user302933

관련 문제