2017-11-14 7 views
1

그래서 MVVM Light를 사용하고 있습니다. 메인 페이지의 프레임에 페이지를로드하는 버튼이있는 햄버거 메뉴를 만든 UWP 앱이 있습니다. 햄버거 메뉴는 MainPage에 있습니다.UWP 햄버거 메뉴를 잃지 않고 프레임 간 탐색

지금까지는 SourcePageType 만 사용하고 MainPageViewModel의 Type 속성에 바인딩했습니다. MainPageViewModel 인스턴스를 정적 ​​속성에 할당하여 SourcePageType의 바인딩 소스를 쉽게 업데이트 할 수 있습니다. 내가 예를 들어,이 작업을 수행 할 수있는 방법은 :

MainPageViewModel.Current.CurrentFrame = typeof(NewItemPage); 

그러나, 난 그냥 (예 : GoBack을 밖으로 손실) 아마 최적되지 않습니다 MainFrameViewModel을 업데이트하여 프레임 사이에 이동하고있어 의미합니다.

NavigateTo를 사용할 때마다 나는 햄버거 메뉴를 잃어 버리고 완전히 새로운 페이지를 열어서 내가 원하는 것을하지 못하기 때문에 내가 이것을 한 이유가 있습니다. 햄버거 메뉴를 항상 사용할 수있게하고 싶습니다.

MainPage뿐만 아니라 다른 페이지에서도 이동할 수 있어야합니다. 예를 들어, 페이지 중 하나에는 데이터베이스에서로드 된 이미지의 격자보기가 있습니다. 이러한 이미지 중 하나를 클릭 할 때마다 예를 들어 세부 정보 페이지 나 편집 페이지로 이동합니다.

누구나 NavigationService를 사용하여 어떻게 할 수 있습니까? 난 그냥 mvvm을 배우고 싶어 이후 코드 숨김을 사용하여 의존하고 싶지 않아요.

답변

0

다음 구조는 NavigationService에서

  • 가지고 (탐색 할 수있는 모든 내용을 포함하고 또한 주요 자리 역할을합니다) Hamburger에 대한 기본 Frame 장소 XAML에서 당신에게

    1. 도움 또 다른 Frame합니다 콘텐츠 프레임을 참조하고 내부에서보기를로드하고 그 안에서 탐색합니다.

    나는 또한 내 응용 프로그램 중 하나에서 비슷한 일을하고 잘 작동합니다.

    참고 - 추가 도움이 필요하시면 언제든지이 도움을 받아야한다고 생각합니다. 언제든지 물어보십시오.

  • +0

    이미 콘텐츠 용 햄버거 메뉴가있는 MainPage 내에 프레임이 있습니다. NavigationService를 변경해야한다고 가정합니다. MVVM Light에 내장 된 navigationservice를 사용하려했기 때문입니다. 나 자신의 NavigationService 클래스를 만들어야합니까? 이 작업을 수행하는 방법에 대한 좋은 예가 있습니까? –

    +0

    예. NavigationService를 직접 만든 다음 콘텐츠 프레임 참조를 사용하여 뷰를로드하십시오. –

    +0

    어떻게 그 방법을 읽을 수 있습니까? –