x:Class-Attribut
Aktualisiert: November 2007
Konfiguriert die XAML-Kompilierung so, dass partielle Klassen zwischen Markup und Code-Behind verknüpft werden. Die partielle Klasse im Code wird in einer Common Language Specification (CLS)-Sprache als separate Codedatei definiert, während die partielle Klasse im Markup während der XAML-Kompilierung vom Code-Generator erstellt wird.
Verwendung von XAML-Attributen
<object x:Class="namespace.classname"...>
...
</object>
XAML-Werte
namespace |
Optional. Gibt einen CLR-Namespace an, der die mithilfe von classname identifizierte partielle Klasse enthält. Wenn namespace angegeben ist, werden namespace und namespace durch einen Punkt (.) getrennt. |
classname |
Erforderlich. Gibt den CLR-Namen der partiellen Klasse an, die den geladenen XAML-Code und Ihren Code-Behind für XAML verbindet. |
Hinweise
x:Class kann als Attribut für alle Elemente deklariert werden, bei denen es sich um das Stammelement einer Extensible Application Markup Language (XAML)-Elementstruktur handelt und die kompiliert werden (wobei die Extensible Application Markup Language (XAML) in einem Projekt mit der Buildaktion Page verwendet wird). Die Deklaration für den Application-Stamm in der Anwendungsdefinition einer kompilierten Anwendung ist ebenfalls möglich. Das Deklarieren von x:Class für alle Elemente, bei denen es sich nicht um das Stammelement einer Seite oder Anwendung handelt, sowie unter jeglichen Umständen für eine Extensible Application Markup Language (XAML)-Datei, die nicht kompiliert ist, führt zu einem Kompilierzeitfehler.
Die als x:Class verwendete Klasse darf keine geschachtelte Klasse sein.
x:Class ist dahingehend optional, dass es ohne Probleme möglich ist, eine XAML-Seite ohne Code-Behind zu verwenden. Wenn Ihre Seite jedoch Werte für Ereignishandlerattribute deklariert oder benutzerdefinierte Elemente instanziiert, wobei sich die definierenden Klassen in der Code-Behind-Klasse befinden, ist das Bereitstellen des x:Class-Verweises (bzw. von x:Subclass) für die jeweilige Klasse für den Code-Behind letztlich erforderlich.
Beim Wert des x:Class-Attributs muss es sich um eine Zeichenfolge handeln, die den vollqualifizierten Namen einer Klasse angibt. Bei einfachen Anwendungen können Sie CLR-Namespaceinformationen weglassen, solange der Code-Behind entsprechend strukturiert ist (die Definition beginnt auf Klassenebene). Die Code-Behind-Datei für eine Seiten- oder Anwendungsdefinition muss sich innerhalb einer Codedatei befinden, die als Teil des Projekts eingefügt wird, das eine kompilierte Anwendung erstellt. Sie müssen die Namensregeln für CLR-Klassen befolgen. Ausführliche Informationen finden Sie unter Typdefinitionen (möglicherweise in englischer Sprache). Standardmäßig muss die Code-Behind-Klasse public sein, aber Sie können eine andere Zugriffsebene definieren, indem Sie das x:ClassModifier-Attribut verwenden.
Beachten Sie, dass diese Bedeutung des x:Class-Attributwerts spezifisch für die WPF-XAML-Implementierung ist. Andere XAML-Implementierungen außerhalb von WPF nutzen ggf. keinen verwalteten Code, so dass sie unter Umständen eine andere Klassenauflösungsformel verwenden.
Siehe auch
Konzepte
XAML und benutzerdefinierte Klassen