我反复收到此错误消息:部分声明不得指定不同的基类。有人可以告诉我这可能是什么原因。这是我的代码。
CashAdvancePage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ebmsMobile.CashAdvancePage"
Title="Cash Advance"
BackgroundImage="bg3.jpg">
<Label Text="This is the Cash Advance Page." VerticalOptions="Center" HorizontalOptions="Center" />
</ContentPage>
CashAdvancePage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace ebmsMobile
{
public partial class CashAdvancePage : ViewCell
{
public CashAdvancePage()
{
//InitializeComponent();
//NavigationPage.SetHasNavigationBar(this, false);
var image = new Image
{
HorizontalOptions = LayoutOptions.Start
};
image.SetBinding(Image.SourceProperty, new Binding("ImageUri"));
image.WidthRequest = image.HeightRequest = 40;
var nameLayout = CreateNameLayout();
var viewLayout = new StackLayout()
{
Orientation = StackOrientation.Horizontal,
Children = { image, nameLayout }
};
View = viewLayout;
}
static StackLayout CreateNameLayout()
{
var nameLabel = new Label
{
HorizontalOptions= LayoutOptions.FillAndExpand
};
nameLabel.SetBinding(Label.TextProperty, "DisplayName");
var twitterLabel = new Label
{
HorizontalOptions = LayoutOptions.FillAndExpand,
Font = Fonts.Twitter
};
twitterLabel.SetBinding(Label.TextProperty, "Twitter");
var nameLayout = new StackLayout()
{
HorizontalOptions = LayoutOptions.StartAndExpand,
Orientation = StackOrientation.Vertical,
Children = { nameLabel, twitterLabel }
};
return nameLayout;
}
}
}
最佳答案
作为迟到的...
如果您试图为您的页面创建基类……但它失败了。您可以从您自己的自定义基类继承。
就是这样...
1:创建一个基础类页面(带有类背后的代码) :
例如,这是我的,但你的可能不同......
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Pulse.Mobile.Views.BaseContentPage">
</ContentPage>
public partial class BaseContentPage : ContentPage
{
#region <Fields & Constants>
protected Style ValidationEntryErrorStyle = Application.Current.Resources["ValidationEntryErrorStyle"] as Style;
protected Style FormEntryStyle = Application.Current.Resources["FormEntryStyle"] as Style;
#endregion
#region <Constructors>
public BaseContentPage()
{
InitializeComponent();
}
#endregion
#region <Events>
protected override void OnAppearing()
{
base.OnAppearing();
LogHelper.Trace($"Screen - {this}", "Browsed");
}
#endregion
#region <Methods>
protected bool ValidateKeyPress(Entry entry, TextChangedEventArgs e, string regularExpression)
{
var text = e.NewTextValue;
// Allow Empty
if(string.IsNullOrWhiteSpace(text))
return true;
var result = Regex.IsMatch(e.NewTextValue, regularExpression);
return result;
}
protected void ValidateStyle(Entry control, bool isValid)
{
switch (isValid)
{
case false:
control.Style = ValidationEntryErrorStyle;
break;
default:
control.Style = FormEntryStyle;
break;
}
}
protected void ValidateStyle(Picker control, bool isValid)
{
switch (isValid)
{
case false:
control.Style = ValidationEntryErrorStyle;
break;
default:
control.Style = null;
break;
}
}
#endregion
}
2:在您的页面中引用基础类页面 :确保您在“xmlns:views”中引用您的 View 。特别注意页面根元素:“
<?xml version="1.0" encoding="utf-8" ?>
<views:BaseContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:Pulse.Mobile.Views;assembly=Pulse.Mobile"
x:Class="Pulse.Mobile.Views.ShakeoutDocumentPage">
<ContentPage.Content>
// YOUR AWESOME CONTENT GOES HERE...
</ContentPage.Content>
</views:BaseContentPage>
关于xamarin - 部分声明不得指定不同的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37177154/