Директива 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:).
См. также
.NET Desktop feedback