none
WPF 의 그리드에서 컬럼, 로우 카운트로 해당 객체를 얻어 오고 싶습니다.

    질문

  • 현재 WPF 의 GRID 에서

    많은 ROW와 COLUMN 이 있습니다.

    각각의 [ROW][COLUMN] 인덱스에는

    객체가 배치되어 있습니다.(마치 체스판이나 바둑판 처럼)

    마우스의 포인터로 ROW, COLUMN 인덱스를 구했는데

    이를 이용하여 특정 행,열에 위치하고 있는 객체를 어떻게 접근하는지 알고 싶습니다.

    답변 부탁드립니다.

    2019년 4월 18일 목요일 오전 8:04

답변

  • 안녕하세요.

    Row, Column의 인덱스를 이미 구하셨다면

                int row = 0, column = 0;
                var obj = mainGrid.Children
                    .Cast<UIElement>()
                    .First(x => Grid.GetRow(x) == row && Grid.GetColumn(x) == column);
                Console.WriteLine(obj.ToString());

    이렇게 사용하시면 됩니다.

    해당 인덱스에 Label이 들어 있다면 출력결과는

    System.Windows.Controls.Label: (0,0)

    이렇게 나옵니다. "(0,0)"은 Label.Content="(0,0)" 으로 설정되어 있어서 출력되는 문자입니다.

    그럼..

    • 답변으로 표시됨 Yuseon.Jo 2019년 4월 24일 수요일 오전 12:53
    2019년 4월 19일 금요일 오전 5:06

모든 응답

  • 안녕하세요.

    Row, Column의 인덱스를 이미 구하셨다면

                int row = 0, column = 0;
                var obj = mainGrid.Children
                    .Cast<UIElement>()
                    .First(x => Grid.GetRow(x) == row && Grid.GetColumn(x) == column);
                Console.WriteLine(obj.ToString());

    이렇게 사용하시면 됩니다.

    해당 인덱스에 Label이 들어 있다면 출력결과는

    System.Windows.Controls.Label: (0,0)

    이렇게 나옵니다. "(0,0)"은 Label.Content="(0,0)" 으로 설정되어 있어서 출력되는 문자입니다.

    그럼..

    • 답변으로 표시됨 Yuseon.Jo 2019년 4월 24일 수요일 오전 12:53
    2019년 4월 19일 금요일 오전 5:06
  • 감사합니다.

    그런데 First 를 쓰면 원하지 않는 type 의 UIElement 항목이 나올경우가 있네요.

    Where 를 쓰면 여러개가 나와서 한번더 걸러줘야 하고요.

    한번에 Custom type (User Control) 의 UIElement 를 받아 올 순 없을까요?

    2019년 4월 24일 수요일 오전 12:55