2016-08-24 2 views
0

Je suis nouveau en utilisant Template10, et j'essaye de créer une méthode pour naviguer entre les pages, mais dans Template10 le NavigationService fonctionne seulement sur aucune méthode statique, comment est la meilleure façon d'utiliser le NavigationService de Template10.UWP Template10 NavigationService dans une méthode statique

Voici mon code, comme vous pouvez le voir montrer l'erreur, si le mot statique est supprimé, il ne donne pas d'erreurs, mais je ne pouvais pas utiliser dans d'autres pages.

using Template10.Mvvm; 

namespace Project 
{ 
    class NavigationUniversalService : ViewModelBase 
    {  
     public static void ToCover() 
     { 
      NavigationService.Navigate(typeof(Views.Page_Cover)); 
     }  
    } 
} 

Toute aide est appréciée.

Répondre

2

mais je ne pouvais pas utiliser dans d'autres pages.

Vous pouvez utiliser cette méthode dans d'autres pages en créant une nouvelle instance de votre NavigationUniversalService.

Par exemple, dans mon MainPageViewModel j'ai utilisé NavigationService comme ceci:

public void ToCover() 
{ 
    App.Current.NavigationService.Navigate(typeof(Views.Page_Cover)); 
} 

ensuite dans viewmodel d'autre page, vous pouvez appeler cette méthode comme ceci:

MainPageViewModel mainviewmodel = new MainPageViewModel(); 
mainviewmodel.ToCover(); 

Le problème est, si vous voulez pour naviguer à travers NavigationService, vous pouvez hériter de votre classe de ViewModelBase, alors vous pouvez directement utiliser NavigationService pour naviguer, il n'est pas nécessaire d'appeler ceci NavigationService d'une autre classe.

Ce que je veux dire est par exemple comme ceci:

public class DetailPageViewModel : ViewModelBase 
{ 
    public DetailPageViewModel() 
    { 
     if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) 
     { 
      Value = "Designtime value"; 
     } 
    } 
    ... 
    public void CallMethodInOtherViewModel() 
    { 
     NavigationService.Navigate(typeof(typeof(Views.Page_Cover)); //here! 
    } 
}