2017-07-13 43 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的框架?

回答