2017-07-13 39 views
2

在使用模板10的UWP应用程序中,我们有一个管理页面。管理页面在一个框架内有两个页面,AdminSettings1和AdminSettings2。我们希望在框架中的AdminSettings1和AdminSettings2之间导航,但是我们发现我们到达目标页面,但失去了包含页面。使用模板10在框架之间导航MVVM

我们如何使用Template 10 MVVM在一帧内的页面之间导航而不会丢失包含页面?

的XAML(略):

<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>   

我们到达AdminPage这样

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

在AdminPageViewModel我们转到AdminPage2这样

public void GoToAdmin2() => NavigationService.Navigate(typeof(Views.AdminPage2)); 但失去了含管理页面

我参考Other examples of calling Navigate的T10文档。此选项可以浏览网页机器人失去包含页面

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

我无法测试这个例子中的文档中,因为我不明白的地方MyFrame来自

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

我们如何内页面之间导航一个使用Template 10 MVVM的框架?

回答