Атрибут x:Class

Настраивает компиляцию XAML для объединения разделяемых классов разметки и кода программной части. Разделяемый класс кода определяется в отдельном файле кода, а разделяемый класс разметки создается при формировании кода во время компиляции XAML.

Использование атрибутов XAML

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

Значения XAML

Термин Описание
namespace Необязательный элемент. Указывает пространство имен, которое содержит разделяемый класс, определяемый classname. Если namespace указано, то namespace и classname должны быть разделены точкой ("."). Если namespace пропущено, то classname может не иметь пространства имен.
classname Обязательный. Указывает имя разделяемого класса, который объединяет загруженный код XAML и ваш код программной части для этого XAML.

Комментарии

x:Class может быть объявлен как атрибут любого элемента, который является корнем дерева файлов и объектов XAML и компилируется действиями сборки, или корня Application в определении скомпилированного приложения. Назначение x:Class любому элементу, кроме корневого узла, а также XAML-файлу, который не был скомпилирован с действием сборки Page, при любых условиях выдаст ошибку времени компиляции.

Класс, используемый в качестве x:Class, не может быть вложенным классом.

Значение атрибута x:Class должно быть строкой, которая указывает полное имя класса. Вы можете пропустить сведения о пространстве имен при условии, что код программной части структурирован следующим образом: определение вашего класса начинается на уровне класса. Файл кода программной части страницы или определения приложения должен быть частью файла кода, включенного в проект. Класс кода программной части должен быть общим. Класс кода программной части должен быть разделяемым.

Языковые правила среды CLR

Хотя ваш файл кода программной части может быть написан на языке C++, существуют определенные соглашения, до сих пор следующие языковой форме среды CLR таким образом, что в синтаксисе XAML отсутствуют расхождения. В частности, разделителем между пространством имен и компонентами имени класса любого значения x:Class всегда является точка ("."), хотя в файле кода на языке C++, связанном с XAML, разделителем между пространством имен и именем класса служит "::". Если вы объявляете вложенные пространства имен в C++, то, когда вы указываете часть namespace значения x:Class, в качестве разделителя между последовательными строками вложенных пространств имен следует использовать точку (".") вместо "::".