Udostępnij przez


atrybut x:Class

Konfiguruje kompilację XAML w celu łączenia klas częściowych między znacznikami i kodami. Klasa częściowa kodu jest definiowana w osobnym pliku kodu, a klasa częściowa znaczników jest tworzona przez generowanie kodu podczas kompilacji XAML.

Użycie atrybutu XAML

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

Wartości XAML

Termin Description
obszar nazw Opcjonalny. Określa przestrzeń nazw zawierającą klasę częściową zidentyfikowaną przez nazwę klasy. Jeśli określono przestrzeń nazw , kropka (.) oddziela przestrzeń nazw i nazwę klasy. Jeśli przestrzeń nazw zostanie pominięta, przyjmuje się, że nazwa klasy nie ma przestrzeni nazw.
nazwa klasy To jest wymagane. Określa nazwę klasy częściowej, która łączy załadowany XAML z powiązanym kodem programistycznym.

Uwagi

x:Klasa może być zadeklarowana jako atrybut dla dowolnego elementu, który jest elementem głównym drzewa obiektów XAML i jest kompilowany w ramach akcji kompilacji, lub dla elementu głównego Application w definicji aplikacji skompilowanej. Deklarowanie klasy x: dla dowolnego elementu innego niż węzeł główny i w dowolnych okolicznościach dla pliku XAML, który nie jest kompilowany z akcją kompilacji Strony , powoduje błąd czasu kompilacji.

Klasa używana jako x:Class nie może być klasą zagnieżdżoną.

Wartość atrybutu x:Class musi być ciągiem określającym w pełni kwalifikowaną nazwę klasy. Możesz pominąć informacje o przestrzeni nazw, jeśli część kodu-behind jest zbudowana w ten sam sposób (definicja klasy zaczyna się na poziomie klasy). Plik związany z kodem dla definicji strony lub aplikacji musi znajdować się w pliku kodu, który jest uwzględniony w projekcie. Klasa code-behind musi być publiczna. Klasa code-behind musi być częściowa.

Reguły języka CLR

Mimo że plik związany z kodem może być plikiem C++, istnieją pewne konwencje, które nadal są zgodne z formularzem języka CLR, dzięki czemu nie ma różnicy w składni XAML. W szczególności separator między składnikami przestrzeni nazw i klasy dowolnej wartości x:Class jest zawsze kropką ("."), mimo że separator między przestrzenią nazw i nazwą klasy w pliku kodu C++ skojarzonym z XAML to "::". Jeśli zadeklarujesz zagnieżdżone przestrzenie nazw w języku C++, to separator pomiędzy kolejnymi zagnieżdżonymi nazwami przestrzeni powinien być również ".", a nie "::", jeśli określasz część przestrzeni nazw dla wartości x:Class.