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++ で入れ子になった名前空間を宣言すると、以降の入れ子になった名前空間の文字列間の区切り文字も "::" ではなく "." である必要があります。