Xamarin 错误:无法将类型“MasterDetail.G2.Main”隐式转换为“Xamarin.Forms.Page”

问题描述

当我尝试更改主页时,即使我使用导航页面也会出现错误

我应该使用 as 将类型更改为可移植类型吗?最佳做法是什么?

error:Severity Error CS0029 无法将类型“MasterDetail.G2.Main”隐式转换为“Xamarin.Forms.Page”

Main.xaml.cs
    using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Text;
            using System.Threading.Tasks;
            
            using Xamarin.Forms;
            using Xamarin.Forms.Xaml;
            
            namespace MasterDetail.G2
            {
                [XamlCompilation(XamlCompilationoptions.Compile)]
                public partial class Main : ContentView
                {
                    public Main()
                    {
                        InitializeComponent();
                    }
                }
            }


app.xaml.cs
using MasterDetail.G2;
using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace MasterDetail
{
    public partial class App : Application
    {
        public App()
        {
            InitializeComponent();

            MainPage = new Main();
        }

        protected override void OnStart()
        {
        }

        protected override void OnSleep()
        {
        }

        protected override void OnResume()
        {
        }
    }
}

解决方法

改变

public partial class Main : ContentView

public partial class Main : ContentPage
,

不确定您想要做什么,但是您不能将某个类强制转换为另一个不继承它的类。 ContentPage 不继承自 ContentView 或您的 Main 类。

,

将派生类从 ContentView 更改为 ContentPage

在 Main.xaml 上,将 更改为