x:Uid ディレクティブ

マークアップ要素の一意の識別子を提供します。 この一意識別子は、多くのシナリオで、XAML ローカライズ プロセスおよびツールによって使用されます。

XAML 属性の使用方法

<object x:Uid="identifier"... />

XAML 値

説明
identifier x:Uid コンシューマーによって解釈されるときに、ファイル内で一意である必要がある、手動で作成された、または自動生成された文字列。

Remarks

[MS-XAML] では、x:Uid はディレクティブとして定義されています。 詳細については、[MS-XAML] のセクション 7.3.6 を参照してください。

説明されている XAML ローカライズのシナリオと、ローカライズに使用される識別子が x:Name のプログラミング モデルへの影響に依存しないようにすることの両方の理由から、x:Uidx:Name は別のものになっています。 また、x:Name は、XAML の名前スコープによって管理されます。一方、x:Uid は、XAML 言語で定義された一意性の強制の概念では管理されません。 広い意味での XAML プロセッサは (ローカライズ プロセスの一部ではないプロセッサ)、x:Uid の値の一意性を強制することを想定されていません。 その責任は、概念的には値の発行元にあります。 単一の XAML ソース内で x:Uid の値が一意であると想定することは、専用のグローバリゼーション プロセスやツールなど、値のコンシューマーにとって妥当なことです。 一般的な一意性モデルでは、x:Uid の値は XAML を表す XML でエンコードされたファイル内で一意です。

特定の XAML スキーマについて十分な知識を持つツールの場合、マークアップでテキスト文字列値が検出されるすべてのケースではなく、真のローカライズ可能な文字列にのみ x:Uid を適用することができます。

フレームワークでは、定義している型に属性 UidPropertyAttribute を適用することにより、オブジェクト モデル内の特定のプロパティを x:Uid の別名として指定できます。 フレームワークで特定のプロパティが指定されている場合、x:Uid と別名が設定されたメンバーの両方を同じオブジェクトで指定することは無効です。 x:Uid と別名が設定されたメンバーの両方を指定すると、通常、.NET XAML Services API によって XamlDuplicateMemberException がスローされます。

WPF の使用上の注意

WPF のローカライズ プロセスおよび XAML の BAML 形式における x:Uid の役割の詳細については、「WPF のグローバリゼーション」または Uid に関するページを参照してください

関連項目