Xamarin 表单中的注册项目错误

Posted

技术标签:

【中文标题】Xamarin 表单中的注册项目错误【英文标题】:Registration project error in Xamarin forms 【发布时间】:2022-01-21 19:34:28 【问题描述】:

我是新来的,也是编码新手。我刚刚尝试了 YT 的这个小项目。我复制了所有内容,但无法弄清楚错误有什么问题。 ('x' 是一个未声明的前缀。)

提前致谢!

        <Grid Margin="20,0,20,0" VerticalOptions="CenterAndExpand">
            <Grid.RowDefinitions>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
            </Grid.RowDefinitions>

            <StackLayout Grid.Row ="0">
                <Entry Placeholder ="UserName" FontSize ="16" x:Name =" EntryUserName"/>

            </StackLayout>
            <StackLayout Grid.Row="1">
                <Entry Placeholder ="PassWord" IsPassword="true"  FontSize ="16" x:Name =" EntryUserPassword"/>
            </StackLayout>
            <StackLayout Grid.Row="2">
                <Entry Placeholder ="Email" FontSize ="16" x:Name =" EntryUserEmail"/>
            </StackLayout>
            <StackLayout Grid.Row="3">
                <Entry Placeholder ="PhoneNumber" FontSize ="16" x:Name =" EntryUserPhoneNumber"/>
            </StackLayout>
            <StackLayout Grid.Row="4">
                <Button Text="Register" HorizontalOptions="CenterAndExpand" WidthRequest="100" TextColor="White" BackgroundColor="Blue" Clicked="Handle_Clicked"/>
            </StackLayout>
        </Grid>

    </StackLayout>

【问题讨论】:

【参考方案1】:

你的Entry的Name属性值以空格为前缀,不合理。

您可以将其替换为其他有效字符。

例如:

替换

        <StackLayout Grid.Row ="0">
            <Entry Placeholder ="UserName" FontSize ="16" x:Name =" EntryUserName"/>
        </StackLayout>

与:

             <StackLayout Grid.Row ="0">
                <Entry Placeholder ="UserName" FontSize ="16" x:Name ="mEntryUserName"   />
            </StackLayout>

其他条目的名称类似。

请参考以下代码:

    <StackLayout>
        <Grid Margin="20,0,20,0" VerticalOptions="CenterAndExpand"   >
            <Grid.RowDefinitions>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
                <RowDefinition Height ="Auto"/>
            </Grid.RowDefinitions>

            <StackLayout Grid.Row ="0">
                <Entry Placeholder ="UserName" FontSize ="16" x:Name ="mEntryUserName"   />

            </StackLayout>
            <StackLayout Grid.Row="1">
                <Entry Placeholder ="PassWord" IsPassword="true"  FontSize ="16" x:Name ="mEntryUserPassword"/>
            </StackLayout>
            <StackLayout Grid.Row="2">
                <Entry Placeholder ="Email" FontSize ="16" x:Name ="mEntryUserEmail"/>
            </StackLayout>
            <StackLayout Grid.Row="3">
                <Entry Placeholder ="PhoneNumber" FontSize ="16" x:Name ="mEntryUserPhoneNumber"/>
            </StackLayout>
            <StackLayout Grid.Row="4">
                <Button Text="Register" HorizontalOptions="CenterAndExpand" WidthRequest="100" TextColor="White" BackgroundColor="Blue" Clicked="Button_Clicked"/>
            </StackLayout>
        </Grid>
    </StackLayout>

然后在YourPage.xaml.cs,你可以访问你在函数Button_Clicked中的入口,如下:

       private void Button_Clicked(object sender, EventArgs e)
    
        System.Diagnostics.Debug.WriteLine("User Name  is : " + mEntryUserName.Text +"<---> PassWord  is = " + mEntryUserPassword.Text);
    

【讨论】:

以上是关于Xamarin 表单中的注册项目错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 System.Timers 和 Sysem.Json 的 Xamarin 表单错误

Xamarin表单 - 从错误的线程访问的域

使用 Xamarin.Mobile 读取 Xamarin 表单中的联系人时出错

Xamarin 表单 - Java.Interop.lz4 访问被拒绝错误

对经度和纬度使用 GeoLocator 在 Xamarin 表单中给出以下错误

Xamarin 在启动应用程序时出现芯片错误