2016-06-20 1 views
0

사용자에게주의가 필요한 입력을 유도하는 유효성 검사 모듈을 응용 프로그램에 추가하고 있습니다. Visual Tree에 추가 된 컨트롤과 동일한 순서로 이러한 컨트롤을 살펴보고 싶습니다. 각 컨트롤의 탭 인덱스는 Int Max로 설정됩니다. 이는 Visual Tree의 순서대로 진행된다는 의미입니다.WPF에서 기본 탭 순서 (예 : 시각적 트리 순서)를 얻으려면 어떻게해야합니까?

내 유효성 검사 모듈은 유효성을 검사 할 수있는 일련의 컨트롤을 가져옵니다. 사용자가 위에서 아래로 순서를 정해야 양식을 순차적으로 진행할 수 있습니다. 원래의 탭 동작을 유지하려고합니다. 목록에서 컨트롤의 시각적 트리 순서를 알아야 제대로 정렬 할 수 있습니다.

+0

모든 컨트롤을 호출하고 현재 tabindex를 가져 왔습니까? 그렇다면 무엇을 시도 했습니까? –

+0

명시 적으로 설정하지 않으면 현재 탭 인덱스가 Int Max로 설정되며 이는 시각적 트리 순서대로 진행됩니다. 예, 저는 이것을 시도했습니다. – NielW

답변

0

연구의 며칠 후, 나는 이것이 상자에서 제공되지 않는다는 것을 깨달았다. 결국 FindVisualChildren을 호출하여 모든 FrameworkElements를 가져오고, 컨트롤에서 IValidatable 인터페이스를 구현 한 경우 카운터에서 사용 가능한 다음 인덱스를 할당했습니다. Order라는 의존성 프로퍼티를 추가해야만했습니다. (기존의 TabIndex를 가지고 싶지 않았습니다.) 그런 다음 유효성 검사가 필요한 컨트롤 목록을 얻었을 때 주문별로 정렬했습니다.

이것은 확장 가능한 솔루션이 아니지만 운좋게도 한 번 실행하면됩니다.

누구에게나 더 나은 해결책이있는 경우 게시하십시오. 나는 더러워.

관련 문제