2012-01-10 76 views
35

Chicos Soy nuevo en WPF.Las declaraciones parciales no deben especificar diferentes clases base

Tengo una página wpf llamada StandardsDefault. En el código subyacente, StandardsDefault está heredando Page, como todas las demás páginas.

<Page x:Class="namespace.StandardsDefault" 

public partial class StandardsDefault : Page 

Ahora han creado una nueva clase CountryStandards que se hereda StandardsDefault en lugar de la página.

<Page x:Class="namespace.CountryStandards" 

public partial class CountryStandards : StandardsDefault 

No he cambiado el XAML. Estoy recibiendo el error como

"declaraciones parciales de 'CountryStandards' no debe especificar diferentes clases de base"

Creo que el problema puede ser que el diseñador no está heredando la misma clase. Pero necesito implementar de alguna manera la herencia, ya que hay muchos métodos comunes que deben usarse en muchas páginas estándar como CountryStandards

¿Alguien me puede ayudar?

+0

¿Ha seguido todos los pasos en http://stackoverflow.com/questions/1297433/how-do-you-specify-a-different-base-class-in-xaml-files-silverlight para establecer la clase base de 'CountryStandards' correctamente? –

+1

Después de corregir la declaración con local: CountryStandards xmlns: local = "using: ..." en Visual Studio 2017, haga clic en Descargar proyecto, vuelva a cargar el proyecto para deshacerse de este error en la lista de errores. – Eric

+0

¿Todas las respuestas aún no valían la pena ser "aceptadas"? –

Respuesta

2

En su CountryStandards.xaml debe escribir

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

¿Por qué los votos a favor? Explica tus votos – Cullub

48

usted tiene que cambiar su CountryStandards XAML a:

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

Hay una good article sobre la herencia de una costumbre de ventanillas/Página en WPF.

0

Asegúrate de que otras clases parciales no tengan una clase diferente.

public partial class CountryStandards : StandardsDefault 

public partial class CountryStandards : Page 

Tienes que hacer que se extienda la misma clase.

0

Debe usar StandardsDefault como nodo raíz ya que está creando un control de usuario. Dado que está utilizando la página como nodo raíz, el compilador C# espera que la página sea la base. pero en su caso está utilizando StandardsDefault como base, por lo que necesita utilizar StandardsDefault como nodo raíz, entonces funcionará.

1

Un poco extraño, y no se ha enumerado aquí todavía ... Pero como ninguna de las respuestas anteriores se aplicó porque tenía mis dos archivos xaml y cs declarados correctamente, hice lo siguiente y me pareció que trabajo:

Vaya a la carpeta de la solución o haga clic en Mostrar todos los archivos en Visual Studio y elimine las carpetas obj y bin, esto hace que Visual Studio regenere todos sus archivos para el proyecto.

Su proyecto debe ahora construir/ejecutar correctamente.

Espero que ayude a alguien, o quizás a mí mismo en el futuro.

Editar: Esta reparación generalmente funciona si obtiene este problema después de cambiar el tipo de página de, por ejemplo, una página de contenido a una página de carrusel.

Cuestiones relacionadas