2016-08-24 8 views
0

私は新しいTemplate10を使用していますが、ページ間を移動するメソッドを作成しようとしていますが、NavigationServiceは静的メソッドでは機能しません。 Template10。スタティックメソッドのUWP Template10ナビゲーションサービス

ここに私のコードがありますが、エラーが表示されますが、静的な単語が削除されてもエラーは発生しませんが、他のページでは使用できません。

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)); 
} 

その後、他のページののviewmodelで、あなたはこのように、このメソッドを呼び出すことができますしたい場合は

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! 
    } 
} 
:私は何を意味

は、このような例のためであります

関連する問題