You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin报错:名称‘authorEntry’在当前上下文中不存在,求解决

解决Xamarin.Forms中“名称‘authorEntry’在当前上下文中不存在”的错误

嘿,刚接触Xamarin的话遇到这种XAML和后台代码关联的问题太正常了,我来帮你一步步搞定~

这个错误的核心原因很明确:你的后台代码里尝试访问名为authorEntry的控件,但你的XAML文件里要么没定义这个控件,要么拼写不一致,甚至可能是编译问题导致控件引用没生成。

从你贴的NewBookPage.xaml片段来看,目前只定义了<Entry x:Name="nameEntry" .../>,完全看不到authorEntry的影子,这就是问题所在啦!

具体解决步骤:

  1. 在XAML中添加缺失的authorEntry控件
    打开你的NewBookPage.xaml,在StackLayout里补充一个带有x:Name="authorEntry"的Entry,比如:

    <Entry x:Name="authorEntry" Placeholder="请输入作者名称" Margin="0,10,0,0" />
    

    记得把它放在合适的位置,和其他控件一起布局。

  2. 严格检查大小写和拼写
    Xamarin.Forms里控件的x:Name是区分大小写的!比如AuthorEntry和authorEntry会被识别成两个完全不同的控件,一定要保证后台代码里的名称和XAML里的x:Name完全一致,连大小写都不能错。

  3. 清理并重新生成解决方案
    有时候VS的XAML设计器文件会“偷懒”没更新,导致后台找不到控件引用。这时候你可以:

    • 点击菜单栏的【生成】→【清理解决方案】
    • 接着点击【生成】→【重新生成解决方案】
      重新编译后,自动生成的设计器文件会更新,控件引用就能正常识别了。
  4. 确认后台类是分部类
    打开NewBookPage.xaml.cs,确保你的类定义是partial的,像这样:

    public partial class NewBookPage : ContentPage
    {
        // 你的代码逻辑
    }
    

    只有分部类才能和XAML自动生成的设计器文件关联起来,否则控件引用肯定会失效。

给你个完整的示例参考:

NewBookPage.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="Form.NewBookPage">
    <StackLayout Margin="10,10,10,0">
        <Entry x:Name="nameEntry" Placeholder="输入书籍名称" />
        <Entry x:Name="authorEntry" Placeholder="输入作者名称" Margin="0,10,0,0" />
        <Button Text="保存书籍" Clicked="OnSaveBookClicked" Margin="0,20,0,0" />
    </StackLayout>
</ContentPage>

NewBookPage.xaml.cs

using Xamarin.Forms;

namespace Form
{
    public partial class NewBookPage : ContentPage
    {
        public NewBookPage()
        {
            InitializeComponent();
        }

        private void OnSaveBookClicked(object sender, EventArgs e)
        {
            var newBook = new Book
            {
                Name = nameEntry.Text?.Trim(),
                Author = authorEntry.Text?.Trim()
            };

            if (!string.IsNullOrEmpty(newBook.Name) && !string.IsNullOrEmpty(newBook.Author))
            {
                DisplayAlert("添加成功", $"书籍:{newBook.Name}\n作者:{newBook.Author}", "确定");
            }
            else
            {
                DisplayAlert("提示", "请填写完整的书籍和作者信息", "好的");
            }
        }
    }

    public class Book
    {
        public string Name { get; set; }
        public string Author { get; set; }
    }
}

按照上面的步骤操作后,应该就能解决这个“找不到authorEntry”的错误啦!

内容的提问来源于stack exchange,提问作者khoi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:33:32