Udostępnij za pośrednictwem


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:Classx: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ż