gpt4 book ai didi

c# - 创建我们自己的内容页面时出现 Xaml 错误

转载 作者:行者123 更新时间:2023-11-30 12:19:51 40 4
gpt4 key购买 nike

我创建了一个名为 BaseContentpage 的自己的内容页面。当我从我的 XAML 页面调用它时。它总是给出编译时错误。当我运行它运行顺利的应用程序时,它不会发出。我无法理解这个问题。

我的基本内容页面

  public abstract class BaseContentPage : ContentPage
{
public readonly BaseViewModel BaseViewModel;

protected bool _isNavigated = false;

public BaseContentPage(BaseViewModel baseViewModel)
{
BaseViewModel = baseViewModel;
}

public abstract void Navigate(SelectedItemChangedEventArgs e);
protected abstract override void OnAppearing();
protected override void OnDisappearing()
{
_isNavigated = true;
}
}

我的 XAML 页面

 <views:BaseContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="DipsDemoXaml.Views.PatientListViewPage"
xmlns:views="clr-namespace:DipsDemoXaml.Views;assembly=DipsDemoXaml.Views"
Title="{Binding PatientWard.Name}">

编译时报错

错误 XLS0414 未找到类型“views: BaseContentPage”。确认您没有缺少程序集引用并且所有引用的程序集都已构建。 DipsDemoXaml PatientListViewPage.xaml

如何修复这个编译时错误

最佳答案

首先,您可能想要添加默认构造函数:

 public BaseContentPage () :base()
{

}

由于 Xaml 默认访问此构造函数,因此还调用 base() 构造函数,因为它会初始化基类构造函数。 (不是强制性的,但是,在我的理解中,这是一个很好的实践,主要是当你有构造函数参数时,你希望你的基类构造函数用它来初始化基类。)

现在由于 XAML 无法找到它,它假设您可能没有正确编译您的项目或没有正确的程序集引用。

因此错误

The type 'views: BaseContentPage' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. DipsDemoXaml PatientListViewPage.xaml

其次,抽象方法是在没有任何实现的情况下声明的。声明它们的目的是让子类提供实现。它们必须在抽象类中声明。声明为抽象的类可能包含也可能不包含抽象方法。创建它们的目的是成为父类(super class)。所以我个人认为您的场景不需要抽象类(我可能是错的)。

祝你好运,如有疑问,请随时回复。

关于c# - 创建我们自己的内容页面时出现 Xaml 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095273/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com