Sdílet prostřednictvím


x:Subclass – direktiva

Upraví chování kompilace značek XAML, pokud x:Class je také k dispozici. Místo vytvoření částečné třídy, která je založena na x:Class, je poskytována x:Class jako zprostředkující třída a pak je očekáváno, že vaše odvozená třída bude založena na x:Class.

Použití atributu XAML

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

Hodnoty XAML

Hodnota Popis
namespace Nepovinné. Určuje obor názvů CLR, který obsahuje classname. Pokud namespace je zadána, tečka (.) odděluje namespace a classname.
classname Povinný: Určuje název CLR částečné třídy, která spojuje načtený KÓD XAML a kód pro daný XAML. Viz poznámky.
subclassNamespace Nepovinné. Může se lišit od namespace toho, jestli každý obor názvů dokáže druhý přeložit. Určuje obor názvů CLR, který obsahuje subclassName. Pokud subclassName je zadána, tečka (.) odděluje subclassNamespace a subclassName.
subclassName Povinný: Určuje název CLR podtřídy.

Závislosti

X:Class Direktiva musí být také poskytována na stejném objektu a tento objekt musí být kořenovým prvkem produkčního prostředí XAML.

Poznámky

x:Subclass použití je primárně určené pro jazyky, které nepodporují částečné deklarace tříd.

Třída použitá jako x:Subclass nemůže být vnořená třída a x:Subclass musí odkazovat na kořenový objekt, jak je vysvětleno v části Závislosti.

V opačném případě je koncepční význam x:Subclass nedefinován implementací služby .NET XAML Services. Důvodem je to, že chování služby .NET XAML Services neurčuje celkový programovací model, pomocí kterého jsou propojené kódy XAML a backing. Implementace dalších konceptů souvisejících x:Class s konkrétními x:Subclass architekturami, které používají programovací modely nebo aplikační modely, definují, jak propojit kód XAML, zkompilované značky a kód založený na CLR. Každá architektura může mít vlastní akce sestavení, které umožňují určité chování nebo konkrétní komponenty, které musí být součástí prostředí sestavení. V rámci architektury se akce sestavení můžou lišit také v závislosti na konkrétním jazyce CLR, který se používá pro kód.

Poznámky k využití WPF

x:Subclass může být v kořenovém adresáři stránky nebo Application v kořenovém adresáři v definici aplikace, který již má x:Class. x:Subclass Deklarace jakéhokoli jiného prvku než stránky nebo kořene aplikace nebo jeho určení, kde neexistujex:Class, způsobí chybu v době kompilace.

Vytváření odvozených tříd, které fungují správně pro x:Subclass scénář, je poměrně složité. Je možné, že budete muset prozkoumat zprostředkující soubory (soubory .g vytvořené ve složce obj projektu zkompilováním značek s názvy, které obsahují názvy souborů .xaml). Tyto zprostředkující soubory vám můžou pomoct určit původ určitých programovacích konstruktorů ve spojených částečných třídách v kompilované aplikaci.

Obslužné rutiny událostí v odvozené třídě musí být internal override (Friend Overrides v jazyce Microsoft Visual Basic) k přepsání zástupné procedury pro obslužné rutiny vytvořené v zprostředkující třídě během kompilace. Jinak implementace odvozené třídy skryjí (stín) implementaci zprostředkující třídy a obslužné rutiny zprostředkující třídy nejsou vyvolány.

Při definování obou x:Class a x:Subclass, není nutné poskytnout žádnou implementaci třídy, která je odkazována .x:Class Stačí mu dát název prostřednictvím atributu x:Class , aby kompilátor získal nějaké pokyny pro třídu, kterou vytvoří v zprostředkujících souborech (kompilátor v tomto případě nevybere výchozí název). Můžete dát x:Class třídu implementaci, ale to není typický scénář pro použití obou x:Class i x:Subclass.

Viz také