x:Class ディレクティブ
マークアップと分離コードの間で部分クラスを結合するように XAML マークアップ コンパイルを構成します。 コード部分クラスは共通言語仕様 (CLS) 言語の別のコード ファイルで定義されますが、マークアップ部分クラスは通常、XAML コンパイル時にコード生成によって作成されます。
XAML 属性の使用法
<object x:Class="namespace.classname"...>
...
</object>
XAML 値
価値 | 形容 |
---|---|
namespace |
随意。
classname で識別される部分クラスを含む CLR 名前空間を指定します。
namespace を指定すると、ドット (.) は namespace と classname を区切ります。 「解説」を参照してください。 |
classname |
必須。 読み込まれた XAML とその XAML の分離コードを接続する部分クラスの CLR 名を指定します。 |
依存 関係
x:Class
は、XAML 運用環境のルート要素でのみ指定できます。
x:Class
は、XAML 運用環境で親を持つオブジェクトでは無効です。 詳細については、「[MS-XAML] セクション 6.3.1.6を参照してください。
備考
namespace
値には、関連する名前空間を名前階層に整理するための追加のドットが含まれている場合があります。これは、.NET プログラミングの一般的な手法です。
x:Class
値の文字列内の最後のドットのみが、namespace
を区切るために解釈され、classname.
x:Class
として使用されるクラスは入れ子になったクラスにすることはできません。 入れ子になったクラスが許可されている場合、x:Class
文字列のドットの意味を決定することはあいまいであるため、入れ子になったクラスは許可されません。
x:Class
を使用する既存のプログラミング モデルでは、コードビハインドのない XAML ページを持つことは完全に有効であるという意味で、x:Class
は省略可能です。 ただし、この機能は、XAML を使用するフレームワークによって実装されるビルド アクションと対話します。
x:Class
機能は、XAML で指定されたコンテンツのさまざまな分類がアプリケーション モデルおよび対応するビルド アクションで持つロールの影響も受けます。 XAML でイベント処理属性値を宣言するか、定義クラスが分離コード クラス内にあるカスタム要素をインスタンス化する場合は、分離コードの適切なクラスに x:Class
ディレクティブ参照 (または x:サブクラス) を指定する必要があります。
x:Class
ディレクティブの値は、クラスの完全修飾名を指定する文字列である必要がありますが、アセンブリ情報は指定しません (Type.FullNameと同じです)。 単純なアプリケーションの場合、分離コードもその方法で構造化されている場合は、CLR 名前空間情報を省略できます (コード定義はクラス レベルで開始されます)。
ページ定義またはアプリケーション定義の分離コード ファイルは、コンパイル済みアプリケーションを生成し、マークアップコンパイルを含むプロジェクトの一部として含まれるコード ファイル内にある必要があります。 CLR クラスの名前規則に従う必要があります。 詳細については、「フレームワーク設計ガイドライン」を参照してください。 既定では、分離コード クラスは public
する必要があります。ただし、x:ClassModifier ディレクティブを使用して、別のアクセス レベルで定義できます。
この x:Class
属性の解釈は、CLR ベースの XAML 実装 (特に .NET XAML サービス) にのみ適用されます。 CLR に基づいており、.NET XAML サービスを使用しない他の XAML 実装では、XAML マークアップの接続とランタイム コードのバッキングに別の解決式が使用される場合があります。
x:Class
の一般的な解釈の詳細については、[MS-XAML]を参照してください。
特定のレベルのアーキテクチャでは、.NET XAML サービスでは x:Class
の意味は定義されていません。 これは、.NET XAML サービスでは、XAML マークアップとバッキング コードを接続するプログラミング モデルが指定されていないためです。
x:Class
ディレクティブの追加の使用は、プログラミング モデルまたはアプリケーション モデルを使用して XAML マークアップと CLR ベースの分離コードを接続する方法を定義する特定のフレームワークによって実装される場合があります。 各フレームワークには、ビルド環境に含まれている必要がある動作または特定のコンポーネントの一部を有効にする独自のビルド アクションを持つことができます。 フレームワーク内では、ビルド アクションは、分離コードに使用される特定の CLR 言語によっても異なる場合があります。
WPF プログラミング モデルの x:Class
WPF アプリケーションと WPF アプリケーション モデルでは、x:Class
は、XAML ファイルのルートであり、コンパイルされる要素 (XAML がビルド アクションを Page
WPF アプリケーション プロジェクトに含まれている) またはコンパイル済み WPF アプリケーションのアプリケーション定義の Application ルートの属性として宣言できます。 ページ ルートまたはアプリケーション ルート以外の要素、またはコンパイルされていない WPF XAML ファイルで x:Class
を宣言すると、.NET Framework 3.0 および .NET Framework 3.5 WPF XAML コンパイラでコンパイル時エラーが発生します。 WPF での
x:Class for Windows Workflow Foundation
Windows Workflow Foundation では、x:Class
XAML で構成されるカスタム アクティビティのクラスに名前を付けたり、アクティビティ デザイナーの XAML ページの部分クラスに分離コードを付けたりします。
Silverlight の使用に関する注意事項
Silverlight の x:Class
については、別途記載されています。 詳細については、「XAML 名前空間 (x:) 言語機能 (Silverlight)を参照してください。
関連項目
- x:サブクラス ディレクティブ
- WPF の XAML クラスとカスタム クラスを
する - x:ClassModifier ディレクティブ
- WPF から System.Xaml に移行された 型
.NET Desktop feedback