Xamarin.Forms - 创建新页面时 InitializeComponent 不存在

Posted

技术标签:

【中文标题】Xamarin.Forms - 创建新页面时 InitializeComponent 不存在【英文标题】:Xamarin.Forms - InitializeComponent doesn't exist when creating a new page 【发布时间】:2015-05-03 07:41:25 【问题描述】:

我正在使用 Visual Studio 来试用 Xamarin.Forms。我正在尝试遵循指南: http://developer.xamarin.com/guides/cross-platform/xamarin-forms/xaml-for-xamarin-forms/getting_started_with_xaml/

简而言之,我使用 PCL 创建了一个 Xamarin.Forms 解决方案,然后尝试将 Forms XAML Page 添加到 PCL 项目中。

创建的代码隐藏如下所示:

    public partial class Page1 : ContentPage
    
        public Page1()
        
            InitializeComponent(); 
        
    

这里的问题是InitializeComponent(); 是红色的。 当我尝试构建时,我得知The name 'InitializeComponent' does not exist in the current context

我一直在寻找解决方案,尽管其他人遇到了同样的问题,但他们的解决方案对我不起作用。这是我尝试使用的一个建议: http://blog.falafel.com/xamarin-error-initializecomponent-does-not-exist-in-the-current-context/

如果您有解决此问题的方法,请告诉我。谢谢!

更新:

我的 PCL(我也想在其中添加我的 XAML 页面)包含:

App.cs:

    public class App : Application
    
        public App()
        
            // The root page of your application
            MainPage = new ContentPage
            
                Content = new StackLayout
                
                    VerticalOptions = LayoutOptions.Center,
                    Children = 
                        new Label 
                            XAlign = TextAlignment.Center,
                            Text = "Welcome to Xamarin Forms!"
                        
                    
                
            ;
        

        protected override void OnStart()
        
            // Handle when your app starts
        

        protected override void OnSleep()
        
            // Handle when your app sleeps
        

        protected override void OnResume()
        
            // Handle when your app resumes
        
    

还有我的 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="XamaTest.MyXamlPage">
    <Label Text="Binding MainText" VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>

代码隐藏:

    public partial class MyXamlPage : ContentPage
    
        public MyXamlPage()
        
            InitializeComponent();
        
    

【问题讨论】:

你有什么版本的 xamarin forms 项目。我似乎记得旧项目模板的一个问题。 我应该提到我使用的是视觉工作室和试用版。如何检查版本或更新到最新版本?谢谢你的回答。我尝试右键单击 pcl 并从 nuget 下载最新的 xamarin-Forms。同样的问题。 你能分享你的项目的源代码吗? 谢谢,我更新了问题。如果您需要更多信息,请告诉我。 以防万一:将解决方案移动到新文件夹后,我遇到了同样的问题。我不得不编辑 .csproj 文件来手动更新“packages”文件夹,然后它碰巧再次编译。 【参考方案1】:

尝试了以上所有方法,但没有运气,对我有用的是强制重新安装 Xamarin.Forms 包。在包管理器控制台提示符下;

更新包 xamarin.forms -重新安装

它不更新包,只是删除和重新添加

【讨论】:

【参考方案2】:

我在根元素中缺少一个特定的引用属性(在我的例子中是util):

<ContentPage 
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="MyProject.Views.HomePage"
    xmlns:util="clr-namespace:Porject.Library.Util;assembly=Library"
    >

【讨论】:

【参考方案3】:

我在 VS 社区版 2019 中遇到了同样的问题,我只是使用了 regenerate 解决方案,问题已得到解决

【讨论】:

【参考方案4】:

对我来说,这只是一个流氓 XAML,在&lt;?xml version="1.0" encoding="utf-8" ?&gt; 之前有一个前导空格,即

 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
...

导致一堆CS0103 The name 'InitializeComponent' does not exist in the current context 错误。

【讨论】:

以上是关于Xamarin.Forms - 创建新页面时 InitializeComponent 不存在的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.Forms NavigationPage PushAsync 不滚动

构建新的 Xamarin.Forms 项目失败

如何在 Xamarin.Forms 中切换页面?

Xamarin.Forms webview 进行身份验证,导航到新页面(Shell)并需要再次重新验证?

Xamarin.Forms:应用程序不在页面上显示元素

如何在 Xamarin.Forms 的 TabbedPage 的选项卡中放置一个按钮?