Я работаю над образцом приложения Xamarin.Forms для iOS, используя PRISM.Призма для Xamarin, зависимость не удалась для INavigationService
Но когда я попытался использовать INavigationService в ViewModel, он не смог говоря зависимость Сбой интерфейса INavigationService
Я не знаю, что не так я делаю, как мы можем получить вокруг него, или это ошибка в INavigationServices инъекции ,
Благодаря Divikiran Ravela
Heres код
public App()
{
// The root page of your application
Prism = new PrismBootStrap();
Prism.Run(this);
}
public class PrismBootStrap : UnityBootstrapper
{
protected override Page CreateMainPage()
{
return new NavigationPage(Container.Resolve<HomePage>());
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<HomePage, HomePageViewModel>();
}
}
public class HomePage : ContentPage
{
public HomePageViewModel ViewModel { get; set; }
public HomePage()
{
ViewModel = App.Prism.Container.Resolve<HomePageViewModel>();
Content = new StackLayout
{
Children = {
new Label { Text = "Hello ContentPage" }
}
};
}
}
public class HomePageViewModel : BindableBase
{
private readonly INavigationService _navigationService;
public HomePageViewModel(INavigationService navigationService)
{
_navigationService = navigationService; //Fails here
}
}
Спасибо за входной мозг, оцените его. Эй, я не использую страницы XAML, чтобы установить AutowireViewModel в true вместе с другими пространствами имен. Я использую contentpage.cs, я попробовал SetValue (ViewModelLocator.AutowireViewModel, true) на странице ctor. Но все же у меня была такая же проблема. Можете ли вы направить меня с некоторым примером кода. – Div
Вам нужно использовать ViewModelLocator.SetAutowireViewModel, потому что это присоединенное свойство. –
Я пробовал ниже //SetValue(ViewModelLocator.AutowireViewModelProperty, true); ViewModelLocator.SetAutowireViewModel (это, правда); Не работает пока, пожалуйста, дайте мне знать, что я делаю неправильно – Div