我已經將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文件中?
我猜你需要註冊在'ViewModelLocator'構造一個實現了'INavigation'接口一些實際的類型 –