2017-07-13 11 views
2

テンプレート10を使用するUWPアプリケーションでは、管理ページがあります。管理ページは、1つのフレーム内にAdminSettings1とAdminSettings2という2つのページがあります。フレーム内のAdminSettings1とAdminSettings2の間を移動したいと考えていますが、ターゲットページに到達しているが、含まれているページは失われています。テンプレート10を使用してフレーム間を移動するMVVM

テンプレート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>   

我々はこの

public void GoToAdmin2() => NavigationService.Navigate(typeof(Views.AdminPage2)); ようAdminPage2に移動し、この

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

ようAdminPageに到着するが、これは失います管理ページを含む

Other examples of calling NavigateのT10ドキュメントを参照しました。このオプションは、ページのボットに移動MyFrameとは

我々は内のページ間を移動するにはどうすればよい
// from/with a reference to a Frame 
var nav = WindowWrapper.Current(MyFrame).NavigationServices.FirstOrDefault(); 
nav.Navigate(typeof(Views.DetailPage), this.Value); 

どこから来るのか、私は理解していないとして、私はドキュメントでこの例なかっテストだっ含むページ

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

を失いますテンプレート10 MVVMを使用するフレーム?

答えて

0

あなたは、ページキャッシュを使用して、このソリューションを使用することができます:この質問からhttps://github.com/MyToolkit/MyToolkit/wiki/Paging-Overview を:WinRT/UWP Frame and Page caching: How to create new page instance on Navigate() and keep the page instance on GoBack()

this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled; 
+0

はあなたに@Vladimir Bolshakovをありがとう、私は、テンプレート10のナビゲーションサービスを使用しようとしています。 – Vague

関連する問題