问题描述
我知道这个错误有很多答案,但它们都是一些系统错误或类似的错误。我刚刚创建了这个应用程序,它运行良好。然后我添加了一个视图模型来处理我在注册和登录页面之间的导航,在 login/register.xaml 中我更新了文本以了解我在哪个页面上。但现在无法识别 InitializeComponent
。
using Xamarin.Forms;
namespace Appointments.Views
{
public partial class RegisterPage : ContentPage
{
public RegisterPage()
{
InitializeComponent();
}
}
}
和视图模型:
using Appointments.Views;
using MvvmHelpers;
using MvvmHelpers.Commands;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace Appointments.viewmodels
{
public class RegLogviewmodel : Baseviewmodel
{
public AsyncCommand GoToRegisterCommand;
public AsyncCommand GoToLoginCommand;
RegLogviewmodel()
{
GoToLoginCommand = new AsyncCommand(GoToLogin);
GoToRegisterCommand = new AsyncCommand(GoToRegister);
}
async Task GoToRegister()
{
await Shell.Current.GoToAsync($"//{ nameof(RegisterPage)}");
}
async Task GoToLogin()
{
await Shell.Current.GoToAsync($"//{ nameof(LoginPage)}");
}
}
}
并注册.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Appoitments.Views.RegisterPage">
<ContentPage.Content>
<StackLayout>
<Label
Text="Register Page!"
BackgroundColor="Blue"
VerticalOptions="CenterandExpand"
HorizontalOptions="CenterandExpand" />
<Button
Text="Go To Login"
Command="{Binding GoToLoginCommand}"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
解决方法
您的 Register.xaml
中存在拼写错误,导致 Register
类的 xaml 和 cs 部分定义之间存在不同的命名空间。
你有
x:Class="Appoitments.Views.RegisterPage"
代替
x:Class="Appointments.Views.RegisterPage"