2017-08-29 79 views
0

我已經將MVVM Light庫添加到我的項目中,並創建了一個如下所示的ViewModelLocator.cs文件。帶有MVVM導航的Xamarin表格

public class ViewModelLocator 
{ 
    static ViewModelLocator() 
    { 
     ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); 
     SimpleIoc.Default.Register<MainViewModel>(); 
    } 

    /// <summary> 
    /// Gets the Main property. 
    /// </summary> 
    public MainViewModel Main 
    { 
     get 
     { 
      return ServiceLocator.Current.GetInstance<MainViewModel>(); 
     } 
    } 
} 

在我MainViewModel有一些導航到2級的命令:

public class MainViewModel : ViewModelBase 
{ 
    public INavigation _Navigation { get; set; } 

    public MainViewModel(INavigation navigation) 
    { 
     _Navigation = navigation; 
    } 

    public RelayCommand NavigateToPage1Command 
    { 
     get 
     { 
      return new RelayCommand(async() => 
      { 
       await _Navigation.PushAsync(new Page1()); 
      }); 
     } 
    } 

    public RelayCommand NavigateToPage2Command 
    { 
     get 
     { 
      return new RelayCommand(async() => 
      { 
       await _Navigation.PushAsync(new Page2()); 
      }); 
     } 
    } 

}

但是,當應用程序啓動它給了這個消息/錯誤:

ActivationException: Type not found in cache: Xamarin.Forms.INavigation. 

如何以及在哪裏設置?還在ViewModelLocator.cs文件中?

+0

我猜你需要註冊在'ViewModelLocator'構造一個實現了'INavigation'接口一些實際的類型 –

回答

0