我在使用Xamarin的第一个应用程序中,我发现页面导航有困难。我在第一次使用导航时在各个地方进行了研究并取得了成功。
但是当我添加一个按钮时,会调用需要导航的页面构建器,但不会打开任何页面。当我点击我曾经工作过的按钮(根据下面的打印列表)时,它会消失,但我注意到点击设备Windows Phone硬件按钮会点击第一个故障,即它应该是堆栈中的另一个页面。我不知道如何解决,因为在这第二个按钮工作完美,但第一个无法解决,找不到可能是什么问题。
使用Windows Phone项目测试和使用Visual Studio 2015社区。 p>
按钮截图:
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界面:
public interface INavigationService
{
Task NavigateToRescisao();
Task NavigateToFGTS();
}
NavigationService.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>();
}
答案 0 :(得分:2)
他设法解决了这个问题。我检查了我的绑定并且它们是不完整的名字。
问题是有一个错误描述可以帮助我,我相信这可以为其他人服务。