Поделиться через


Директива x:Class

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

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

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

Значения XAML

Стоимость Description
namespace Необязательно. Указывает пространство имен СРЕДЫ CLR, содержащее частичный класс, определяемый classname. Если namespace задано, точка (.) отделяет namespace и classname. См. заметки.
classname Обязательно. Указывает имя среды CLR частичного класса, который подключает загруженный XAML и код для этого XAML.

Зависимости

x:Class можно указать только корневой элемент рабочей среды XAML. x:Class является недопустимым для любого объекта, имеющего родительский объект в рабочей среде XAML. Дополнительные сведения см. в разделе [MS-XAML] 6.3.1.6.

Замечания

Значение namespace может содержать дополнительные точки для упорядочивания связанных пространств имен в иерархии имен, что является общим методом программирования .NET. Только последняя точка в строке значений интерпретируется для разделения namespace и класса, используемого x:Class как x:Class не может быть вложенным классомclassname.. Вложенные классы не допускаются, так как определение значения точек для x:Class строк неоднозначно, если разрешены вложенные классы.

В существующих моделях программирования, которые используются x:Class, x:Class является необязательным в том смысле, что она является полностью допустимой для страницы XAML, которая не имеет кода позади. Однако эта возможность взаимодействует с действиями сборки, реализованными платформами, используюющими XAML. x:Class также зависит от ролей, которые различные классификации указанного xaml содержимого имеют в модели приложения и в соответствующих действиях сборки. Если XAML объявляет значения атрибутов обработки событий или создает экземпляры пользовательских элементов, в которых определяющие классы находятся в классе code-behind, необходимо предоставить x:Class ссылку на директиву (или x:Subclass) соответствующему классу для кода программной части.

Значение x:Class директивы должно быть строкой, указывающей полное имя класса, но без каких-либо сведений о сборке (эквивалентно Type.FullName). Для простых приложений можно опустить сведения о пространстве имен CLR, если код-заставка также структурирован таким образом (определение кода начинается на уровне класса).

Файл программной части для определения страницы или приложения должен находиться в файле кода, который входит в состав проекта, который создает скомпилированное приложение и включает компиляцию разметки. Необходимо следовать правилам имен для классов CLR. Дополнительные сведения см. в руководстве по проектированию платформы. По умолчанию класс code-behind должен быть public; однако его можно определить на другом уровне доступа с помощью директивы x:ClassModifier.

Эта интерпретация атрибута x:Class применяется только к реализации XAML на основе СРЕДЫ CLR, в частности к службам XAML .NET. Другие реализации XAML, которые не основаны на среде CLR и которые не используют службы XAML .NET, могут использовать другую формулу разрешения для подключения разметки XAML и резервного копирования кода времени выполнения. Дополнительные сведения о более общих интерпретациях x:Classсм. в разделе [MS-XAML].

На определенном уровне архитектуры значение x:Class не определено в службах XAML .NET. Это связано с тем, что службы XAML .NET не указывают модель программирования, с помощью которой подключены разметка XAML и код резервной копии. Дополнительное использование директивы может быть реализовано определенными платформами, использующими модели программирования x:Class или модели приложений для определения способа подключения разметки XAML и программной части на основе СРЕДЫ CLR. Каждая платформа может иметь собственные действия сборки, которые обеспечивают некоторые действия или определенные компоненты, которые должны быть включены в среду сборки. В рамках платформы действия сборки также могут отличаться в зависимости от конкретного языка СРЕДЫ CLR, используемого для программной части.

x:Class в модели программирования WPF

В приложениях WPF и модели x:Class приложений WPF можно объявить в качестве атрибута для любого элемента, который является корнем XAML-файла и компилируется (где XAML входит в проект приложения WPF с Page действием сборки) или корневой каталог Application в определении приложения скомпилированного приложения WPF. x:Class Объявление элемента, отличного от корневого каталога страницы или корневого каталога приложения или файла XAML WPF, который не компилируется, вызывает ошибку во время компиляции в платформа .NET Framework 3.0 и платформа .NET Framework 3.5 КОМПИЛЯТОР XAML WPF. Дополнительные сведения о других аспектах x:Class обработки в WPF см. в разделе Code-Behind и XAML в WPF.

x:Class для Windows Workflow Foundation

Для Windows Workflow Foundation называет класс настраиваемого действия, x:Class состоящего полностью в XAML, или называет частичный класс страницы XAML для конструктора действий с кодом программной части.

Примечания об использовании Silverlight

Директива x:Class для Silverlight документирована отдельно. Дополнительную информацию см. в статье Возможности пространства имен языка XAML (x:).

См. также