2016-08-24 76 views
0

我是新的使用Template10,我尝试创建一个方法来浏览页面,但在Template10中NavigationService只能在没有静态方法的情况下工作,如何使用NavigationService的最佳方式是Template10。在静态方法中的UWP Template10 NavigationService

这是我的代码,你可以看到它显示错误,如果静态词被删除,它不会给出错误,但是我不能在其他页面中使用。

using Template10.Mvvm; 

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

任何帮助表示赞赏。

回答

2

但后来我无法在其他页面中使用。

您可以通过创建您的NavigationUniversalService的新实例在其他页面中使用此方法。

例如,在我的MainPageViewModel我用NavigationService这样的:

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

然后在其他页面的视图模型,你可以调用这个方法是这样的:

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

问题是,如果你想通过NavigationService导航,您可以从ViewModelBase继承您的课程,然后您可以直接使用NavigationService进行导航,无需从其他课程中调用此NavigationService

我的意思是比如像这样:

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