2017-07-13 3 views
2

Dans une application UWP utilisant le modèle 10, nous avons une page d'administration. La page Admin a 2 pages dans un cadre, AdminSettings1 et AdminSettings2. Nous souhaitons naviguer entre AdminSettings1 et AdminSettings2 dans le cadre, mais nous trouvons que nous arrivons à la page cible, mais perdons la page contenant.Navigation entre les trames à l'aide du modèle 10 MVVM

Comment naviguer entre les pages d'une image en utilisant Template 10 MVVM sans perdre la page contenant?

Le XAML (en abrégé):

<SplitView Grid.Row="1" 
      x:Name="AdminSplitView" 
      IsPaneOpen="True" 
      DisplayMode="Inline"> 
    <SplitView.Pane> 
     <Grid> 
      <ListView SelectionMode="Single" 
         Name="AdminListBox"> 
       <ListViewItem Name="AdminSettings1" 
           IsSelected="True" 
           Tapped="{x:Bind AdminViewModel.GoToAdminSettings1}"> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Text="Settings1"/> 
        </StackPanel> 
       </ListViewItem> 
       <ListViewItem Name="AdminSettings2" 
           Tapped="{x:Bind AdminViewModel.GoToJobformSettings2}"> 
        <StackPanel Orientation="Horizontal"> 
         <TextBlock Text="Settings2"/> 
        </StackPanel> 
       </ListViewItem> 
      </ListView> 
     </Grid> 
    </SplitView.Pane> 
    <SplitView.Content> 
     <Frame Name="AdminFrame" /> 
    </SplitView.Content> 
</SplitView>   

Nous arrivons à PageD'Administration comme celui-ci

GoToAdmin() => NavigationService.Navigate(typeof(Views.AdminPage));

En AdminPageViewModel nous naviguons à AdminPage2 comme ce

public void GoToAdmin2() => NavigationService.Navigate(typeof(Views.AdminPage2)); mais perd la contenant la page Admin

J'ai fait référence à la documentation T10 pour Other examples of calling Navigate. Cette option navigue au bot page perd la page contenant

// from inside any window 
var nav = WindowWrapper.Current().NavigationServices.FirstOrDefault(); 
nav.Navigate(typeof(Views.AdminPage2)); 

J'étais essai pas cet exemple dans la documentation que je ne comprends pas où MyFrame vient de

// from/with a reference to a Frame 
var nav = WindowWrapper.Current(MyFrame).NavigationServices.FirstOrDefault(); 
nav.Navigate(typeof(Views.DetailPage), this.Value); 

Comment naviguons-nous entre les pages de une trame utilisant Template 10 MVVM?

Répondre