gpt4 book ai didi

c# - Xamarin.Forms:导航到页面失败

转载 作者:行者123 更新时间:2023-11-30 23:31:26 24 4
gpt4 key购买 nike

我在使用 Xamarin 的第一个应用程序中发现页面导航有困难。到处研究,第一次使用导航就成功了。

但是当我添加一个按钮时,需要导航的页面构建器被调用但不会打开任何页面。当我单击我曾经工作过的按钮(根据下面的打印列表)时,它会出现,但我注意到单击设备 Windows Phone 硬件按钮单击第一个失败,即它应该是堆栈中的另一页。我不知道如何解决,因为在第二个按钮中工作正常但第一个无法解决并且找不到可能是什么问题。

使用 Windows Phone 项目测试和使用 Visual Studio 2015 社区。

按钮截图:

enter image description here

MainViewModel.cs 中设置通过点击按钮绘制导航的命令:

private readonly INavigationService _navigationService;

public MainViewModel()
{
RescisaoCommand = new Command(NavigateToRescisao);
FGTSCommand = new Command(NavigateToFGTS);

_navigationService = DependencyService.Get<INavigationService>();
}

private async void NavigateToRescisao()
{
await _navigationService.NavigateToRescisao();
}

private async void NavigateToFGTS()
{
await _navigationService.NavigateToFGTS();
}

App.cs 构造函数:

public App()
{
DependencyService.Register<IMessageService, MessageService>();
DependencyService.Register<INavigationService, NavigationService>();

// The root page of your application
MainPage = new NavigationPage(new MainView());
}

INavigationService.cs 接口(interface):

public interface INavigationService
{
Task NavigateToRescisao();
Task NavigateToFGTS();
}

导航服务.cs:

public class NavigationService : INavigationService
{
public async Task NavigateToRescisao()
{
await App.Current.MainPage.Navigation.PushAsync(new RescisaoView());
}

public async Task NavigateToFGTS()
{
await App.Current.MainPage.Navigation.PushAsync(new FGTSView());
}
}

FGTSViewModel.cs 构造函数(有效):

public FGTSViewModel()
{
CalculateFgtsCommand = new Command(x => { ShowResult(); });

_messageService = DependencyService.Get<IMessageService>();
//_navigationService = DependencyService.Get<INavigationService>();
}

RescisaoViewModel.cs 构造函数(无效):

 public RescisaoViewModel()
{
Reasons = new List<string>();
TypesOfNotice = new List<string>();

Reasons.Add("Pedido de demissão");
Reasons.Add("Justa causa");
Reasons.Add("Sem justa causa");
Reasons.Add("Término de contrato de experiência");

TypesOfNotice.Add("Trabalhado");
TypesOfNotice.Add("Indenizado");

//_navigationService = DependencyService.Get<INavigationService>();
}

最佳答案

他设法解决了问题。我检查了我的绑定(bind),它们是不完整的名称。

问题是有一个错误描述可以帮助我,我相信这可以为其他人服务。

关于c# - Xamarin.Forms:导航到页面失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34580780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com