更新 : 2007 年 11 月
x:Class も提供される場合の XAML のコンパイル動作を変更します。特に、Public アクセス レベル (既定レベル) で部分クラスを作成する代わりに、提供された x:Class が NonPublic アクセス値で作成されます。これは、生成されるアセンブリでのクラスのアクセス レベルに影響を与えます。
XAML 属性の使用方法
<object x:Class="namespace.classname" x:ClassModifier="NonPublic">
...
</object>
XAML 値
NonPublic |
Public か NonPublic かを指定するために渡す正確な文字列は、使用されている分離コード プログラミング言語によって異なります。「解説」を参照してください。 |
依存関係
x:Class も同じ要素に提供される必要があり、その要素はページのルート要素である必要があります。
解説
x:ClassModifier 属性の値は、プログラミング言語によって異なります。使用する文字列は、各言語が CodeDomProvider および TypeAttributes.Public と TypeAttributes.NonPublic の意味を定義するために返す型コンバータの実装方法と、その言語が大文字と小文字を区別するかどうかによって決まります。
C# の場合、NonPublic を指定するために渡す文字列は internal です。
Microsoft Visual Basic .NET の場合、NonPublic を指定するために渡す文字列は Friend です。
C++/CLI の場合、C++/CLI ターゲットは現時点では XAML のコンパイルをサポートしていません。
Public (C# では public、Microsoft Visual Basic .NET では Public) を指定することもできますが、動作としては Public が既定となっているため一般的ではありません。
Private の値 (C# の private) は x:ClassModifier に関係しません。XAML では入れ子になったクラス参照がサポートされないためであり、NonPublic 修飾子が同じ効果を持ちます。
参照
概念
Windows Presentation Foundation のセキュリティ