Ошибки реализации простого наследования страниц .NET MAUI в .NET MAUIC#

Место общения программистов C#
Ответить
Anonymous
 Ошибки реализации простого наследования страниц .NET MAUI в .NET MAUI

Сообщение Anonymous »

У меня проблема с .NET Maui. Весь день я боролся: создаю свое первое приложение, простое приложение для отслеживания домашнего обслуживания. У меня есть 4 очень похожих экрана, поэтому я решил реализовать класс страницы, чтобы эти похожие страницы могли наследовать характеристики родительской или базовой страницы. Я создал страницу NewBasePage, которую унаследуют 5 страниц. Для тестирования я создал одну из этих страниц — страницу PartsBuyDetail. Я не могу скомпилировать это.
Что мне нужно сделать, чтобы страница PartsBuyDetail унаследовала NewBasePage?
Вот моя разметка XAML NewBasePage: Это мой код NewBasePage.xaml.cs:

Код: Выделить всё

using Microsoft.Maui.Controls;

namespace HomeUpKeepPro.Views
{
public partial class NewBasePage : ContentPage
{
public NewBasePage()
{
InitializeComponent();
}

protected void OnAddClicked(object sender, EventArgs e)
{
// Handle the Add button click event
}

protected void OnSaveClicked(object sender, EventArgs e)
{
// Handle the Save button click event
}

protected void OnDeleteClicked(object sender, EventArgs e)
{
// Handle the Delete button click event
}
}
}
Примечание: когда я добавил:

Код: Выделить всё

protected Label TitleLabel { get; private set; }
protected Label TaskTitleLabel { get; private set; }
protected CollectionView ItemsCollectionView { get; private set; }
protected Label DetailLabel { get; private set; }
над общедоступной строкой NewBasePage() произошло 36 ошибок, по существу говорящих о том, что тип NewBasePage уже содержит определение для меток и представления коллекции, а также неоднозначность между NewBasePage. TitleLabel и NewBasePage.TitleLabel.
Вот моя разметка PartsBuyDetail.xaml (для страницы, которая должна наследовать от NewBasePage): И, наконец, это мой код PartsBuyDetail.xaml.cs (для страницы, которая должна наследовать от NewBasePage):

Код: Выделить всё

using Microsoft.Maui.Controls;
using System.Collections.ObjectModel;
using HomeUpKeepPro.Models;

namespace HomeUpKeepPro.Views
{
public partial class PartsBuyDetail : NewBasePage
{
public PartsBuyDetail()
{
InitializeComponent();

// Populate data in code-behind
TitleLabel.Text = "Parts Buy Detail";
TaskTitleLabel.Text = "Task: Buy Parts";

var parts = new ObservableCollection
{
new PartsBuy { SourceName = "Home Depot", SourceURL = "www.homedepot.com" },
new PartsBuy { SourceName = "Lowes", SourceURL = "www.lowes.com" }
};
ItemsCollectionView.ItemsSource = parts;

DetailLabel.Text = "Details about buying parts.";
}
}
}
Вот ошибки, которые я получаю:

CS0122 «NewBasePage.TitleLabel» недоступен из-за уровня защиты PartsBuyDetail. .Xaml.cs 13

CS0122 «NewBasePage.TaskTitleLabel» недоступен из-за уровня защиты. PartsBuyDetail.Xaml.cs 14

CS0122 «.ItemsCollectionView» недоступен из-за уровня защиты PartsBuyDetail.Xaml.cs 20

CS0122 «NewBasePage.DetailLabel» недоступен из-за его уровень защиты PartsBuyDetail.Xaml.cs 21


Подробнее здесь: https://stackoverflow.com/questions/792 ... n-net-maui
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»