我有三个类,其中一个(ContentPage
)是在我使用的框架(xamarin.forms
)中构建的。
ContentPage
班级定义
public class ContentPage : TemplatedPage{
public View Content { get; set; }
}
ContentPageRequiresRegistration
班级定义
public class ContentPageRequiresRegistration:ContentPage
{
private static enumUserType userType;
public ContentPageRequiresRegistration():base()
{
if(userType==enumUserType.unRegistered)
Task.Run(() => this.LoadRegitrationPage()).Wait();
}
private async void LoadRegitrationPage()
{
await Navigation.PushAsync(new Registration(false));
}
}
FillForm
班级
public partial class FillForm : ContentPageRequiresRegistration
{
public FillForm(int formID){
Content = new ....;
}
}
出现的问题是Content
类中的FillForm
在当前上下文中不存在,即使它在超类中已公开定义。
我尝试在Content
课程中找到ContentPageRequiresRegistration
个实例,但它并没有给我任何错误。
我还尝试在base.Content
课程中使用FillForm
,但它工作正常,但是当我在没有base
的情况下调用它时,它会给我错误The name 'Content' does not exist in the current context
。
为什么即使Content
是公开的,也会发生这种情况,如何在FillForm
课程中使用它而无需使用base
?
答案 0 :(得分:0)
尝试在基类中定义一个方法来检索您的内容,
private View _content { get; set; }
public View getContent()
{
return this._content;
}
答案 1 :(得分:0)
您需要将两个部分类更改为ContentPageRequiresRegistration
在Xaml零件文件中,你应该有
< ContentPageRequiresRegistration> ... < ContentPageRequiresRegistration/>
在C#partial class中,它应该扩展
正如您所做的那样ContentPageRequiresRegistration
public partial class FillForm : ContentPageRequiresRegistration
{
public FillForm(int formID){
Content = new ....;
}
}