Atributo x:Class

Configura a compilação XAML para associar classes parciais entre marcação e code-behind. A classe parcial de código é definida em um arquivo de código separado. Já a classe parcial de marcação é criada pela geração do código durante a compilação XAML.

Uso do atributo XAML

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

Valores XAML

Termo Descrição
namespace Opcional. Especifica um namespace que contém a classe parcial identificada por classname. Se namespace for especificado, um ponto (.) separa namespace e classname. Se namespace é omitido, considera-se que classname não tem namespace.
classname Obrigatórios. Especifica o nome da classe parcial que conecta o XAML carregado e o code-behind desse XAML.

Comentários

x:Class pode ser declarado como um atributo para qualquer elemento que seja raiz de um arquivo/árvore de objetos XAML e esteja sendo compilado por ações de compilação, ou para a raiz Application na definição de um aplicativo compilado. A declaração x:Class em qualquer elemento que não seja um nó raiz e, sob qualquer circunstância, para um arquivo XAML não compilado com a ação de compilação Page gerará um erro de tempo de compilação.

A classe usada como x:Class não pode ser aninhada.

O valor do atributo x:Class deve ser uma cadeia de caracteres que especifica o nome totalmente qualificado de uma classe. Você poderá omitir informações de namespace contanto que o code-behind também seja estruturado desse modo (sua definição de classe começa no nível de classe). O arquivo code-behind de uma definição de página ou de aplicativo deve estar em um arquivo de código incluído como parte do projeto. A classe code-behind deve ser pública. A classe de code-behind deve ser parcial.

Regras da linguagem CLR

Embora seu arquivo code-behind possa ser um arquivo em C++, há certas convenções que ainda seguem a forma de linguagem CLR, para que não haja qualquer diferença na sintaxe XAML. Em particular, o separador entre os componentes namespace e classname de um valor x:Class é sempre um ponto ("."), mesmo que o separador entre namespace e classname do arquivo de código C++ associado ao XAML seja "::". Caso você declare namespaces aninhados em C++, o separador entre as cadeias de caracteres de namespaces aninhados sucessivos também deve ser "." em vez de "::" quando especifica a parte namespace do valor x:Class.