ฉันพยายามพุชหน้าโมดอลในแอปแบบฟอร์ม xamarin โดยใช้ MVVM เมื่อกดปุ่ม ฉันรู้วิธีใช้สแต็กการนำทางแล้ว แต่ไม่รู้ว่าจะทำอย่างไรกับหน้าเนื้อหาเป็นหน้าโมดอล ฉันได้ลองหลายสิ่งหลายอย่าง โดยเฉพาะอย่างยิ่งการเรียกใช้เมธอด PushPageModel
นี่คือสิ่งสุดท้ายที่ฉันได้ลอง: ดูหรือเพจ:
<Label
x:Name="forgottenPasswordLabel"
Text="Forgot password?"
TextColor="LightPink"
FontSize="16"
FontAttributes="Bold"
VerticalOptions="Start"
HorizontalOptions="End"
Margin="25,0,25,25">
<Label.GestureRecognizers>
<TapGestureRecognizer Command="{Binding ForgotPasswordCommand}"/>
</Label.GestureRecognizers>
</Label>
คลาส ViewModel:
public class LogInViewModel : FreshBasePageModel
{
public ICommand ForgotPasswordCommand { get; set; }
public LogInViewModel()
{
}
public override void Init(object initData)
{
ForgotPasswordCommand = new Command (async() =>
{
var newPage = FreshPageModelResolver.ResolvePageModel<ForgottenPasswordViewModel>();
await CoreMethods.PushPageModel<ForgottenPasswordViewModel>(null, false, true);
});
}
}
คลาส App.xaml.cs:
public App()
{
InitializeComponent();
MainPage = FreshPageModelResolver.ResolvePageModel<LogInViewModel>();
}
รหัสนี้แสดงข้อผิดพลาดต่อไปนี้: "FreshTinyIoC.TinyIoCResolutionException: 'แก้ไขล้มเหลว: IFreshNavigationService"
นั่นคือทั้งหมด หากคุณต้องการข้อมูลเพิ่มเติม ฉันจะแจ้งให้ทราบทันทีที่ฉันเห็นคำขอของคุณ ขอขอบคุณทุกท่านที่สละเวลา หวังว่าคุณจะมีวันดีๆ
แก้ไข: ร้องขอการติดตามสแต็ก:
ที่ FreshTinyIoC.FreshTinyIoCContainer.ResolveInternal (FreshTinyIoC.FreshTinyIoCContainer+การลงทะเบียน TypeRegistration, พารามิเตอร์ FreshTinyIoC.NamedParameterOverloads, ตัวเลือก FreshTinyIoC.ResolveOptions) [0x000f7] ใน C:"นี่คือเส้นทาง" ที่ FreshTinyIoC.FreshTinyIoCContainer แก้ไข (System.Type solveType, System. ชื่อสตริง) [0x00000] ใน C:\"นี่คือเส้นทาง" ที่ FreshTinyIoC.FreshTinyIoCContainer.Resolve[ResolveType] (ชื่อ System.String) [0x00000] ใน C:"นี่คือเส้นทาง" ที่ FreshMvvm.FreshTinyIOCBuiltIn.Resolve[ ResolveType] (ชื่อ System.String) [0x00000] ใน C: "นี่คือเส้นทาง" ที่ FreshMvvm.PageModelCoreMethods.PushPageModelWithPage (หน้า Xamarin.Forms.Page, FreshMvvm.FreshBasePageModel pageModel, ข้อมูล System.Object, System.Boolean modal, System .Boolean animate) [0x00177] ใน C:"นี่คือเส้นทาง" ที่ FreshMvvm.PageModelCoreMethods.PushPageModel (FreshMvvm.FreshBasePageModel pageModel, ข้อมูล System.Object, System.Boolean modal, System.Boolean animate) [0x00048] ใน C:" นี่คือเส้นทาง" ที่ FreshMvvm.PageModelCoreMethods.PushPageModel[T] (ข้อมูล System.Object, System.Boolean modal, System.Boolean animate) [0x00040] ใน C:"นี่คือเส้นทาง" ที่ FirstApp.ViewModels.LogInViewModel.b__5_0 () [0x0003a] ใน D:\"นี่คือเส้นทาง"
ForgottenPasswordViewModel
หรือมุมมองของคุณที่เป็นสาเหตุของปัญหานี้ มีบางอย่างที่อาจทำให้เกิดข้อยกเว้น หรือคุณไม่ได้ปฏิบัติตามโครงสร้างโฟลเดอร์หรือFreshMVVM
ในตอนนี้ เพื่อให้เราเข้าใจสิ่งนี้ได้ง่ายขึ้น คุณจะต้องเพิ่ม Stracktrace สำหรับข้อยกเว้นนี้ที่นี่! - person FreakyAli   schedule 08.02.2020