部分声明不能指定不同的基类

我是WPF的新手。

我有一个名为StandardsDefault的wpf页面。 在后面的代码中, StandardsDefault像所有其他页面一样inheritance了Page

 <Page x:Class="namespace.StandardsDefault" public partial class StandardsDefault : Page 

现在我创build了一个inheritanceStandardsDefault而不是页面的新类CountryStandards

 <Page x:Class="namespace.CountryStandards" public partial class CountryStandards : StandardsDefault 

我没有改变XAML。 我得到的错误

'CountryStandards' “的部分声明不能指定不同的基类”

我认为问题可能是devise师不是inheritance同一个class级。 但我需要以某种方式实现inheritance,因为有许多常用的方法将被用在许多标准页面,如CountryStandards

谁能帮我吗?

您必须将您的CountryStandards XAML更改为:

 <src:StandardsDefault x:Class="namespace.CountryStandards" xmlns:src="NamespaceOfStandardsDefault" ... /> 

有一篇关于从WPF中的自定义窗口/页面inheritance的好文章 。

在你的CountryStandards.xaml你应该写

 <StandardsDefault x:Class="namespace.CountryStandards"... 

一个奇怪的位,这里还没有列出来…但是,因为没有上述的答案适用,因为我有我的XAML和CS文件正确宣布,我做了以下,它似乎工作:

进入解决scheme文件夹或单击显示在Visual Studio中的所有文件,并删除obj和bin文件夹 ,这会导致Visual Studio重新生成项目的所有文件。

你的项目现在应该build立/正确运行。

希望能帮助某个人 – 或者将来帮助自己。

编辑:此修补程序通常工作,如果在将页面types从例如ContentPage更改为CarouselPage后出现此问题。

确保其他部分类不扩展一个不同的类。

 public partial class CountryStandards : StandardsDefault public partial class CountryStandards : Page 

你必须让他们延伸同一class。

您需要使用StandardsDefault作为根节点,因为您正在创build一个用户控件。由于您正在使用页面作为根节点,因此c#编译器期望以页面为基础。 但在你使用StandardsDefault作为基础,所以你需要使用StandardsDefault作为根节点,那么它将工作。