Xamarin наследует ContentPage в Xaml


Как можно создать базовый класс contentpage для наследования с помощью Xamarin forms?

Я следовал этому форуму за советом.

Все в порядке, пока мне не придется обратиться к части Xaml.

using System;
using Xamarin.Forms;

namespace MyProject
{
    public class BaseContentPage : ContentPage
    {
        public BaseContentPage()
        {
        }
    }
}


using System;

using Xamarin.Forms;

namespace MyProject
{
    public partial class DashboardPage : BaseContentPage
    {
        public DashboardPage()
        {
            InitializeComponent();
        }

        void GoToJobDetailsPage(object sender, EventArgs args)
        {
            var masterPage = Application.Current.MainPage as MasterDetailPage;
            masterPage.Detail = new H2HNavigationPage(new JobDetailPage());
        }
    }
}


<?xml version="1.0" encoding="UTF-8"?>
<d.BaseContentPage
    xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:d="clr-namespace:MyProject;assembly=MyProject"
    x:Class="MyProject.DashboardPage"
    ControlTemplate="{StaticResource Background}">
    <ContentPage.Content>

    </ContentPage.Content>
</d.BaseContentPage>

Когда я делаю это, я получаю ошибку компилятора

...DashboardPage.xaml.g.cs(64,64): Error CS0234: The type or namespace name 'd' does not exist in the namespace 'Xamarin.Forms' (are you missing an assembly reference?) (CS0234)

Конечно, я могу понять, что псевдоним d не входит в область видимости, но что мне делать, чтобы создать пользовательскую страницу содержимого базового класса?

1 2

1 ответ:

В XAML используйте ": "в качестве разделителя между пространством имен и именем класса

<d:BaseContentPage>
  ...
</d:BaseContentPage>