x:Class, dyrektywa
Konfiguruje kompilację znaczników XAML w celu łączenia częściowych klas między znacznikami i kodami. Klasa częściowa kodu jest definiowana w osobnym pliku kodu w języku CLS (Common Language Specification), natomiast klasa częściowa znaczników jest zwykle tworzona przez generowanie kodu podczas kompilacji XAML.
Użycie atrybutu XAML
<object x:Class="namespace.classname"...>
...
</object>
Wartości XAML
Wartość | Opis |
---|---|
namespace |
Fakultatywny. Określa przestrzeń nazw CLR zawierającą klasę częściową zidentyfikowaną przez classname . Jeśli określono namespace , kropka (.) oddziela namespace i classname . Zobacz uwagi. |
classname |
Wymagane. Określa nazwę CLR klasy częściowej, która łączy załadowany kod XAML i kod-behind dla tego XAML. |
Zależności
x:Class
można określić tylko w elemecie głównym produkcji XAML.
x:Class
jest nieprawidłowy dla dowolnego obiektu, który ma obiekt nadrzędny w środowisku produkcyjnym XAML. Aby uzyskać więcej informacji, zobacz [MS-XAML] Sekcja 6.3.1.6.
Uwagi
Wartość namespace
może zawierać dodatkowe kropki w celu organizowania powiązanych przestrzeni nazw w hierarchie nazw, co jest wspólną techniką programowania na platformie .NET. Tylko ostatnia kropka w ciągu wartości x:Class
jest interpretowana w celu oddzielenia namespace
i classname.
klasa używana jako x:Class
nie może być klasą zagnieżdżonymi. Klasy zagnieżdżone nie są dozwolone, ponieważ określenie znaczenia kropek dla ciągów x:Class
jest niejednoznaczne, jeśli zagnieżdżone klasy są dozwolone.
W istniejących modelach programowania korzystających z x:Class
x:Class
jest opcjonalny w tym sensie, że jest całkowicie prawidłowa, aby mieć stronę XAML, która nie ma kodu. Jednak ta funkcja współdziała z akcjami kompilacji zaimplementowanymi przez struktury korzystające z języka XAML.
x:Class
możliwości mają również wpływ role, na które mają zastosowanie różne klasyfikacje zawartości określonej w języku XAML w modelu aplikacji i w odpowiednich akcjach kompilacji. Jeśli kod XAML deklaruje wartości atrybutów obsługi zdarzeń lub tworzy wystąpienia elementów niestandardowych, w których klasy definiujące znajdują się w klasie za kodem, należy podać odwołanie do dyrektywy x:Class
(lub x:Podklasa) do odpowiedniej klasy dla kodu za pomocą kodu.
Wartość dyrektywy x:Class
musi być ciągiem określającym w pełni kwalifikowaną nazwę klasy, ale bez żadnych informacji o zestawie (odpowiednik Type.FullName). W przypadku prostych aplikacji można pominąć informacje o przestrzeni nazw CLR, jeśli kod jest również ustrukturyzowany w ten sposób (definicja kodu rozpoczyna się na poziomie klasy).
Plik związany z kodem dla definicji strony lub aplikacji musi znajdować się w pliku kodu dołączonym jako część projektu, który tworzy skompilowany aplikację i obejmuje kompilację znaczników. Należy postępować zgodnie z regułami nazw dla klas CLR. Aby uzyskać więcej informacji, zobacz Framework Design Guidelines. Domyślnie klasa za pomocą kodu musi być public
; można go jednak zdefiniować na innym poziomie dostępu przy użyciu dyrektywy x:ClassModifier.
Ta interpretacja atrybutu x:Class
ma zastosowanie tylko do implementacji XAML opartej na clR, w szczególności do usług XAML platformy .NET. Inne implementacje XAML, które nie są oparte na clR i które nie używają usług XAML platformy .NET, mogą używać innej formuły rozpoznawania do łączenia znaczników XAML i tworzenia kopii zapasowej kodu czasu wykonywania. Aby uzyskać więcej informacji na temat bardziej ogólnych interpretacji x:Class
, zobacz [MS-XAML].
Na pewnym poziomie architektury znaczenie x:Class
jest niezdefiniowane w usługach XAML platformy .NET. Dzieje się tak, ponieważ usługi XAML platformy .NET nie określają modelu programowania, za pomocą którego są połączone znaczniki XAML i kod kopii zapasowej. Dodatkowe zastosowania dyrektywy x:Class
mogą być implementowane przez określone struktury korzystające z modeli programowania lub modeli aplikacji, aby zdefiniować sposób łączenia znaczników XAML i kodu opartego na clR. Każda struktura może mieć własne akcje kompilacji, które umożliwiają niektóre zachowania lub określone składniki, które muszą być uwzględnione w środowisku kompilacji. W ramach platformy akcje kompilacji mogą również różnić się w zależności od określonego języka CLR używanego dla kodu.
x:Class w modelu programowania WPF
W aplikacjach WPF i modelu aplikacji WPF x:Class
można zadeklarować jako atrybut dla dowolnego elementu, który jest katalogiem głównym pliku XAML i jest kompilowany (gdzie XAML jest zawarty w projekcie aplikacji WPF z Page
akcji kompilacji) lub dla Application katalogu głównego w definicji aplikacji skompilowanej aplikacji WPF. Deklarowanie x:Class
elementu innego niż katalog główny strony lub katalog główny aplikacji lub w pliku WPF XAML, który nie jest skompilowany, powoduje błąd czasu kompilacji w kompilatorze .NET Framework 3.0 i .NET Framework 3.5 WPF XAML. Aby uzyskać informacje o innych aspektach obsługi x:Class
w WPF, zobacz Code-Behind i XAML w WPF.
x:Class for Windows Workflow Foundation
W przypadku programu Windows Workflow Foundation x:Class
nazwij klasę niestandardowego działania złożonego w całości w języku XAML lub nadaj częściowej klasie strony XAML projektantowi działań kod-behind.
Informacje o użyciu programu Silverlight
x:Class
dla programu Silverlight jest udokumentowany oddzielnie. Aby uzyskać więcej informacji, zobacz przestrzeni nazw XAML (x:) Funkcje językowe (Silverlight).
Zobacz też
- dyrektywy
x:Subclass - XAML i niestandardowe klasy dla WPF
- x:ClassModifier, dyrektywa
- typy migrowane z WPF do System.Xaml
.NET Desktop feedback