x:FieldModifier-Attribut

Aktualisiert: November 2007

Ändert das Kompilierverhalten von XAML, sodass Felder für benannte Objektverweise mit NonPublic-Zugriff statt mit dem Public-Standardverhalten definiert werden.

Verwendung von XAML-Attributen

<object x:FieldModifier="Public".../>

XAML-Werte

Public

Welche Zeichenfolge genau zum Festlegen von Public im Vergleich zu NonPublic übergeben wird, ist unterschiedlich und hängt von der verwendeten Code-Behind-Programmiersprache ab. Siehe Hinweise.

Abhängigkeiten

x:Name muss ebenfalls im gleichen Element bereitgestellt werden.

Hinweise

Der Wert des x:FieldModifier-Attributs unterscheidet sich je nach Programmiersprache. Die zu verwendende Zeichenfolge hängt davon ab, wie die jeweilige Sprache ihren CodeDomProvider implementiert, sowie von den Typkonvertern, die zum Definieren der Bedeutungen für TypeAttributes.Public und TypeAttributes.NonPublic zurückgegeben werden, und ob bei der Sprache die Groß- und Kleinschreibung beachtet werden muss.

  • In C# lautet die zum Festlegen von Public zu übergebende Zeichenfolge public.

  • In Microsoft Visual Basic .NET lautet die zum Festlegen von Public zu übergebende Zeichenfolge Public.

  • In C++/CLI unterstützen die C++/CLI-Ziele derzeit nicht die Kompilierung von XAML.

Sie können auch NonPublic (internal in C#, Friend in Microsoft Visual Basic .NET) festlegen, wobei dies jedoch ungewöhnlich ist, da NonPublic als Verhalten bereits die Standardeinstellung darstellt.

NonPublic ist die Standardeinstellung, da es ungewöhnlich ist, dass Code außerhalb der Assembly, mit der das XAML kompiliert wurde, auf ein von XAML erstelltes Element zugreifen muss. Die Sicherheitsarchitektur von WPF legt bewusst fest, dass Felder, in denen Elementinstanzen gespeichert werden, nicht öffentlich gemacht werden, es sei denn, Sie legen den x:FieldModifier ausdrücklich fest.

x:FieldModifier ist nur für Elemente mit einem x:Name-Attribut relevant, da der Name zum Verweis auf das Feld verwendet wird, sobald es öffentlich ist.

Die partielle Klasse des Stammelements ist standardmäßig öffentlich, kann jedoch mit dem x:ClassModifier-Attribut nicht öffentlich gemacht werden. Das x:ClassModifier-Attribut wirkt sich auch auf die Zugriffsebene der Instanz der Stammelementklasse aus. Sie können sowohl x:Name als auch x:FieldModifier im Stammelement platzieren, wobei hierdurch jedoch nur eine Kopie des öffentlichen Felds des Stammelements erstellt wird und die Zugriffsebene der eigentlichen Stammelementklasse weiterhin vom x:ClassModifier-Attribut gesteuert wird.

Siehe auch

Konzepte

XAML und benutzerdefinierte Klassen

Code-Behind und XAML

Erstellen einer WPF-Anwendung (WPF)

Referenz

x:Name-Attribut

x:ClassModifier-Attribut