Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Partial declarations must not specify different base classes

Tags:

c#

wpf

I have a wpf page named StandardsDefault. In the code behind, StandardsDefault is inheriting Page, like all other pages.

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

Now I have created a new class CountryStandards which is inheriting StandardsDefault instead of page.

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

I have not changed the XAML . I am getting the error as

"Partial declarations of 'CountryStandards' must not specify different base classes"

I think the problem may be that the designer is not inheriting the same class. But I need to somehow implement inheritance since there are many common methods which are to be used in many standard pages like CountryStandards

Can anyone help me out?

like image 471
Kuntady Nithesh Avatar asked Jan 10 '12 09:01

Kuntady Nithesh


2 Answers

You have to change your CountryStandards XAML to:

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

There is a good article about inheriting from a custom Window/Page in WPF.

like image 139
nemesv Avatar answered Oct 08 '22 23:10

nemesv


Bit of an odd one, and it hasn't been listed here yet... But since none of the above answers applied because I had both my xaml and cs files declared correctly, I did the following and it seemed to work:

Go into the solution folder or click the show all files buton within Visual Studio and delete both the obj and bin folders, this causes Visual Studio to regenerate all of its files for the project.

Your project should now build/run correctly.

Hope that helps someone - or perhaps myself in the future.

Edit: This fix usually works if you get this problem after changing the page type from for example a ContentPage to a CarouselPage.

like image 43
Luke Alderton Avatar answered Oct 08 '22 23:10

Luke Alderton