2014-09-04 2 views
1

WinRT를 사용하여 사용자 입력을 기반으로 탐색을 구현하려고합니다. Navigate 메서드에서 가변 페이지 형식을 사용하려고했습니다. 불행히도 변수를 페이지 유형으로 받아들이지 않는 것처럼 보입니다. 아무도이 문제를 해결할 방법을 알고 있습니까?Frame.Navigate에서 가변 페이지 유형 사용

object myPage = page2; 

this.Frame.Navigate(typeof(myPage)); 

난 그냥 스위치 문을 작성하고 각 문에 전체 명령을 넣어하지만 내가 페이지 유형의 큰 거래를 가지고 끝낼 수 있습니다, 특히 이후 유지하기 위해 꼴 사나운 하드 보인다 수 있습니다.

도움을 주시면 감사하겠습니다. 감사합니다.

편집 : 약간의 설명. 나는 목록에 퀴즈를 저장하는 퀴즈 프로그램을 작성하고 있지만 특정 페이지 형식을 필요로하는 여러 유형의 퀴즈이므로 다른 페이지 유형이 필요합니다. 목록에 문자열로 페이지 유형을 저장하고 목록이 무작위로 지정되므로 현재 테스트의 다음 페이지 유형을 알 수 없습니다. 퀴즈 엔진은 대기열의 다음 퀴즈를 미리 읽고 페이지 유형을 추출하고 this.Frame.Navigate 명령에 삽입 할 변수를 만듭니다. 이것은 내가 문제가있는 곳입니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

감사합니다.

+0

모든 퀴즈 페이지를 검색 결과 페이지로 이동시켜 스위치 문으로 한 지점에서 탐색을 처리하도록하여이 문제를 해결했습니다. 결국 더 많은 MVVM 구조를 구현하는 대신 탐색 서비스로 전환 할 것입니다. 모두의 도움에 감사드립니다! – evilsushi

답변

0

"가변"유형이 없습니다. var은 코드를 적게 작성할 수 있습니다. 컴파일러는 표현식의 유형을 변수 유형으로 대체합니다. "마법"은 없습니다.

당신이처럼 쓸 수 있습니다 :

object myPage; 

if (???) 
    myPage = new Page1(); 
else 
    myPage = new Page2(); 

this.Frame.Navigate(myPage.GetType()); 

을 사용하면 사용자의 입력에 따라 탐색을 구현하려면, 당신은 definely 경우 또는 switch 문을 사용해야합니다. 페이지 유형을 Navigate() 방법으로 전달해야합니다. 위의 코드로 무엇을하려했는지 알 수는 없습니다. 간단한 if 문을 사용하면됩니다.

+0

변수 유형이 확실하지 않아 var 만 사용했습니다. 나는 그것이 올바른 상황에 있다면 C#이 그것을 파악하기에 충분히 똑똑하다고 생각했다. – evilsushi

+0

나는 당신이 한 것처럼 객체를 사용해 보았고 대부분의 오류는 사라졌지만 페이지는 탐색하지 않았습니다. – evilsushi

+0

@evilsushi 문제를 재현 할 수 없습니다. 코드를 공유 할 수 있습니까? –

관련 문제