Compartir a través de


x:Subclass (atributo)

Actualización: noviembre 2007

Modifica el comportamiento de compilación de XAML en los casos donde también se proporciona x:Class. En concreto, en lugar de crear una clase parcial basada en la clase de página, el atributo x:Class proporcionado se crea como una clase intermedia, por lo que se espera que la clase derivada proporcionada se base en x:Class.

Uso de atributos XAML

<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
   ...
</object>

Valores XAML

namespace

Opcional. Especifica un espacio de nombres CLR que contiene classname. Si se especifica namespace, se incluye un punto (.) para separar namespace y classname.

classname

Necesario. Especifica el nombre CLR de la clase parcial que conecta el XAML cargado y el código subyacente de ese XAML. Vea Comentarios.

subclassNamespace

Opcional. Puede ser diferente de namespace, siempre que cada espacio de nombres pueda resolver el otro. Especifica un espacio de nombres CLR que contiene subclassName. Si se especifica subclassName, se incluye un punto (.) para separar subclassNamespace y subclassName.

subclassName

Necesario. Especifica el nombre CLR de la subclase.

Dependencias

Atributo x:Class también se debe proporcionar en el mismo elemento, que debe ser el elemento raíz de una página.

Comentarios

El uso de x:Subclass está destinado principalmente a los lenguajes que no admiten las declaraciones de clases parciales.

x:Subclass se puede declarar para cualquier elemento que sea la raíz de una página Lenguaje de marcado de aplicaciones extensible (XAML), y/o para la raíz de Application en la definición de aplicación, que ya tiene x:Class. Si se declara x:Subclass en cualquier elemento que no sea la raíz de una página o aplicación, o se especifica sin que exista x:Class, se producirá un error en tiempo de compilación.

La creación de clases derivadas que funcionen correctamente para el escenario x:Subclass es una tarea bastante compleja. Puede que sea necesario examinar los archivos intermedios (los archivos .g generados en la carpeta obj del proyecto, con nombres que incorporan los nombres de los archivos .xaml). Estos archivos intermedios pueden ayudarle a determinar el origen de algunas construcciones de programación en las clases parciales combinadas dentro de la aplicación compilada.

La clase utilizada como x:Subclass no puede ser una clase anidada.

Los controladores de eventos de la clase derivada deben ser de tipo internal override (Friend Overrides en Microsoft Visual Basic .NET), a fin de invalidar los códigos auxiliares correspondientes a los controladores que se crean en la clase intermedia durante la compilación. De lo contrario, las implementaciones de la clase derivada ocultarían la implementación de clase intermedia (prevalecerían sobre ella) y no se invocarían los controladores de clase intermedios.

Al definir x:Class y x:Subclass , no es preciso proporcionar ninguna implementación de la clase a la que x:Class hace referencia. Únicamente hay que darle un nombre mediante el atributo x:Class, para que sirva de guía al compilador en relación con la clase que se crea en los archivos intermedios (el compilador no elige un nombre predeterminado en este caso). Puede proporcionar una implementación de la clase x:Class si lo desea, pero no es lo habitual cuando se utiliza x:Class y x:Subclass.

Vea también

Conceptos

XAML y clases personalizadas

Referencia

Atributo x:Class