INavigationService
을 내 ViewModel에 삽입하려고 했으므로 페이지간에 이동할 수 있지만 ViewModel을 매개 변수로 등록하는 방법을 모르겠습니다. 여기 내 응용 프로그램입니다 :Xamarin.Forms에서 프리즘을 사용하여 페이지를 탐색하는 방법은 무엇입니까?
<prism:PrismApplication xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:prism="clr-namespace:Prism.Unity;assembly=Prism.Unity.Forms"
x:Class="PrismDemo.App" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d1p1:Ignorable="d" xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006">
<prism:PrismApplication.Resources>
<ResourceDictionary>
</ResourceDictionary>
</prism:PrismApplication.Resources>
</prism:PrismApplication>
및 ...
public partial class App
{
INavigationService _navigationService;
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override void OnInitialized()
{
InitializeComponent();
_navigationService = NavigationService;
NavigationService.NavigateAsync("MainNavigationPage/Start");
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MainNavigationPage>();
Container.RegisterTypeForNavigation<StartPage, StartPageViewModel>("Start");
Container.RegisterTypeForNavigation<MiddlePage, MiddlePageViewModel>("Middle");
Container.RegisterTypeForNavigation<LastPage, LastPageViewModel>("Last");
}
}
가 어떻게 ViewModels에
_navigationService
를 주입 할 수 있습니까? 당신은 실제로 직접만큼 당신이 뷰 모델에
INavigationService
을 사용하려면 규칙
{MyProjectName}.Views.{MyPage}
및
{MyProjectName}.ViewModels.{MyPageViewModel}
을 따랐다로 뷰 모델을 등록하지 않아도 도움
Dan 감사합니다.하지만 'INavigationService navigationService' 매개 변수를 viewmodel에 추가하면 예외가 발생합니다./ –
@LouisaBickley가 문제의 저장소를 제공 할 수 있습니까? –
죄송합니다. 문제의 원인이되는 일부 코드를 남겼습니다. 그것은 작동합니다. 감사! –