x:Class 属性

マークアップとコード ビハインドの間で部分クラスを結合するための XAML コンパイルを設定します。 コードの部分クラスは、個別のコード ファイルで定義され、マークアップ部分クラスは XAML コンパイル時のコード生成によって作成されます。

XAML 属性の使用方法

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

XAML 値

項目 説明
namespace 任意。 classname で識別される部分クラスが含まれている名前空間を指定します。 名前空間を指定すると、名前空間クラス名がドット (.) で区切られます。 名前空間を省略すると、クラス名には名前空間がないものと見なされます。
classname 必須。 ロードされた XAML とその XAML のコード ビハインドを結び付ける部分クラスの名前を指定します。

注釈

x:Class は、XAML ファイル/オブジェクト ツリーのルートであり、ビルド アクションによってコンパイルされる任意の要素か、コンパイルされたアプリケーションのアプリケーション定義中の Application ルートの属性として宣言できます。 ルート ノード以外の任意の要素に対して x:Class を宣言した場合、XAML ファイルが Page ビルド動作でコンパイルされていない任意の状況下で、コンパイル時エラーになります。

x:Class として使われたクラスは、ネストされたクラスにすることはできません。

x:Class 属性の値は、クラスの完全修飾名を指定する文字列であることが必要です。 コード ビハインドに名前空間情報がない場合に限り、名前空間情報を省略できます (クラス定義はクラス レベルで開始されます) ページまたはアプリケーション定義のコード ビハインド ファイルは、プロジェクトの一部として含まれているコード ファイルの中にあることが必要です。 コード ビハインド クラスはパブリックであることが必要です。 コード ビハインド クラスは部分的であることが必要です。

CLR 言語規則

コード ビハインド ファイルとしては C++ ファイルが使用可能ですが、XAML 構文に違いが出ないようにするため、CLR の言語形式に従う特定の構文があります。 特に、任意の x:Class 値の名前空間とクラス名の間の区切り文字は、XAML に関連付けられた C++ コード ファイルの名前空間とクラス名の間の区切り文字が "::" であっても、常にドット (".") になります。 x:Class 値の namespace 部分を指定する場合、C++ で入れ子になった名前空間を宣言すると、以降の入れ子になった名前空間の文字列間の区切り文字も "::" ではなく "." である必要があります。