저는 MVVM Light를 사용하지 않았지만 저는 Xamarin Forms에 대한 경험이 상당히 있습니다. 네비게이션을 위해 MVVM Cross를 사용 했었지만 Xamarin Forms Navigation에 내장 된 기능이 훨씬 뛰어났다는 것을 알았습니다. 여기에있는 것과 비슷한 시나리오가 나타났습니다. 난 당신이 MVVM 빛 탐색을 포기해야한다고 생각하지 않습니다 http://mvvmlight.codeplex.com/SourceControl/latest#Samples/Flowers/Flowers.Forms/Flowers.Forms/Helpers/NavigationService.cs
하지만 당신은 달성하기 위해 후드를 얻을 필요합니까 - MVVM 빛 그냥 자 마린 포장처럼 보이는 후드 아래에서
어쨌든 탐색 양식 3 개의 장면 전환을 보지 않고 탐색. 나는 이것을 MVVM Light로 시도하지는 않았지만, 일반적인 폼 네비게이션과 함께 잘 작동한다.
var navigation = Application.Current.MainPage.Navigation;
2 단계
다시 탐색 할 때 생략 할 두 페이지를 제거 : 기본 자 마린에
1 단계
가져 액세스 탐색 형성한다. 당신이 뒤를 탐색하기 전에 그들을 제거하는 것이 중요합니다. 그렇지 않으면 당신은 두번의 전이를 할 것입니다.
var firstPageToRemove = navigation.NavigationStack[navigation.NavigationStack.Count - 2];
navigation.RemovePage(firstPageToRemove);
var secondPageToRemove = navigation.NavigationStack[navigation.NavigationStack.Count - 2];
navigation.RemovePage(secondPageToRemove);
3 단계
이동 뒤로
_navigationService.GoBack();
나는이 작품을 당신을 위해 노력하겠습니다.
대체 고려
나는 더 우아하게 조금 해결 한 내 응용 프로그램에서 비슷한 응용 프로그램이 있습니다. 이전 페이지로 되돌아 갈 필요가 없다는 것을 안다면. 새 페이지를 열 때 더 이상 필요하지 않으면 이전 페이지를 실제로 제거 할 수 있습니다. 다음에 페이지 을 제거해야합니다. 새 페이지를 밀면 그렇지 않으면 두 개의 전환이 발생합니다. 이 확장 방법을 표준 Forms Navigation의 맨 위에 배치하여 1 단계에서 액세스하는 방법을 보여 줬습니다.
public static async Task ReplaceCurrentAsync(this INavigation navigation, Page page, bool animated = false)
{
var curentPage = navigation.NavigationStack.Last();
await navigation.PushAsync(page, animated);
navigation.RemovePage(curentPage);
}
그러나 – Veeravel
우리가 변화없이 다시 3 번을 갈 수 있다면 가능은 좋은 것 전환을 절감하고 또 다른 하나이어야 상단 – Veeravel
에 밀려처럼 보이게하는 것입니다 나빠 보이지 전이시하지 않습니다 – Veeravel