x:Class-Attribut
Konfiguriert die XAML-Kompilierung, um partielle Klassen zwischen Markup und CodeBehind zu verknüpfen. Die partielle Codeklasse wird in einer separaten Codedatei definiert, die partielle Markupklasse wird von der Codegenerierung während der XAML-Kompilierung erstellt.
XAML-Attributsyntax
<object x:Class="namespace.classname"...>
...
</object>
XAML-Werte
Begriff | BESCHREIBUNG |
---|---|
Namespace | Optional. Gibt einen Namespace an, der die partielle Klasse gemäß Angabe durch classname. Wenn Namespace angegeben ist, werden namespace und classname durch einen Punkt getrennt. Ist kein namespace angegeben, wird davon ausgegangen, dass classname keinen Namespace besitzt. |
classname | Erforderlich. Gibt den Namen der partiellen Klasse an, die das geladene XAML und Ihr CodeBehind für dieses XAML verbindet. |
Hinweise
x:Class kann als Attribut für ein beliebiges Element, das als Stamm einer XAML-Datei-/-Objektstruktur fungiert und durch Erstellungsaktionen kompiliert wird, oder für den Application-Stamm in der Anwendungsdefinition einer kompilierten Anwendung deklariert werden. Wenn Sie x:Class für ein Element, bei dem es sich nicht um einen Stammknoten handelt, oder unter beliebigen Umständen für eine nicht mit der Buildaktion Seite kompilierte XAML-Datei deklarieren, tritt zur Kompilierzeit ein Fehler auf.
Die als x:Class verwendete Klasse darf keine geschachtelte Klasse sein.
Der Wert des x:Class-Attributs muss eine Zeichenfolge sein, die den vollqualifizierten Namen einer Klasse angibt. Bei entsprechender CodeBehind-Struktur (Klassendefinition beginnt auf Klassenebene) können Sie die Namespaceinformationen auch weglassen. Die CodeBehind-Datei für eine Seiten- oder Anwendungsdefinition muss sich in einer Codedatei befinden, die Teil des Projekts ist. Die CodeBehind-Klasse muss öffentlich sein. Die CodeBehind-Klasse muss partiell sein.
CLR-Sprachregeln
Ihre CodeBehind-Datei kann zwar eine C++-Datei sein, bestimmte Konventionen richten sich aber trotzdem nach der CLR-Sprachform, damit keine Abweichungen bei der XAML-Syntax auftreten. Genauer: Das Trennzeichen zwischen Namespace- und Klassennamenkomponenten eines beliebigen x:Class-Werts ist immer ein Punkt („.“), auch wenn das Trennzeichen zwischen Namespace und Klassenname in der zum XAML-Code gehörigen C++-Codedatei „::“ ist. Wenn Sie geschachtelte Namespaces in C++ deklarieren, sollte das Trennzeichen zwischen den aufeinander folgenden geschachtelten Namespacezeichenfolgen auch „.“ statt „::“ sein, wenn Sie den namespace-Teil des x:Class-Werts angeben.