我反复收到此错误消息:部分声明不得指定不同的基类。有人可以告诉我这可能是什么原因。这是我的代码。
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;
}
}
}
最佳答案
当您在 XAML 文件中将其用作 Rootelement 时,您需要从 .cs 中的 ContentPage 继承。
另一个问题是,您需要将“viewLayout”分配给 Content 而不是 View。
using Xamarin.Forms;
namespace ebmsMobile
{
public partial class CashAdvancePage : ContentPage // derive from ContentPage
{
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 }
};
Content = viewLayout; // <-- Set the ViewLayout as Content
}
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;
}
}
}
关于xamarin - 部分声明不得指定不同的基类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37177154/