x:FieldModifier-Direktive
Ändert das XAML-Kompilierungsverhalten, sodass Felder für benannte Objektverweise anstelle des TypeAttributes.NotPublic Standardverhaltens mit TypeAttributes.Public Zugriff definiert werden.
XAML-Attributverwendung
<object x:FieldModifier="Public".../>
XAML-Werte
Wert | Beschreibung |
---|---|
öffentliche | Die genaue Zeichenfolge, die Sie übergeben, um TypeAttributes.Public im Vergleich zu TypeAttributes.NotPublic anzugeben, variiert je nach verwendeter CodeBehind-Programmiersprache. Siehe Anmerkungen. |
Abhängigkeiten
Wenn eine XAML-Produktion x:FieldModifier
überall verwendet, muss das Stammelement dieser XAML-Produktion eine x:Class-Direktivedeklarieren.
Bemerkungen
x:FieldModifier
ist nicht relevant, um die allgemeine Zugriffsebene einer Klasse oder ihrer Member zu deklarieren. Es ist nur für das XAML-Verarbeitungsverhalten relevant, wenn ein bestimmtes XAML-Objekt, das Teil einer XAML-Produktion ist, verarbeitet wird und ein Objekt wird, auf das im Objektdiagramm einer Anwendung potenziell zugegriffen werden kann. Standardmäßig wird der Feldverweis für ein solches Objekt privat gehalten, wodurch verhindert wird, dass Benutzer das Objektdiagramm direkt ändern. Stattdessen wird erwartet, dass Die Verbraucher das Objektdiagramm mithilfe von Standardmustern ändern, die von Programmiermodellen aktiviert werden, z. B. durch Abrufen des Layoutstamms, der untergeordneten Elementsammlungen, der dedizierten öffentlichen Eigenschaften usw.
Der Wert für das attribut x:FieldModifier
variiert je nach Programmiersprache, und sein Zweck kann in bestimmten Frameworks variieren. Die zu verwendende Zeichenfolge hängt davon ab, wie jede Sprache ihre CodeDomProvider implementiert, und die Typkonverter, die sie zurückgibt, um die Bedeutungen für TypeAttributes.Public und TypeAttributes.NotPubliczu definieren und ob die Groß-/Kleinschreibung beachtet wird.
Bei C# wird die Zeichenfolge, die übergeben werden soll, um TypeAttributes.Public festzulegen,
public
.Für Microsoft Visual Basic .NET ist die zu übergebende Zeichenfolge zum Festlegen TypeAttributes.Public
Public
.Für C++/CLI sind derzeit keine Ziele für XAML vorhanden; daher ist die zu übergebende Zeichenfolge nicht definiert.
Sie können auch TypeAttributes.NotPublic (internal
in C#, Friend
in Visual Basic) angeben, aber die Angabe TypeAttributes.NotPublic ist ungewöhnlich, da NotPublic
, da das Verhalten bereits die Standardeinstellung ist.
TypeAttributes.NotPublic ist das Standardverhalten, da es selten ist, dass Code außerhalb der Assembly, die den XAML-Code kompiliert hat, Zugriff auf ein XAML-erstelltes Element benötigt. Die WPF-Sicherheitsarchitektur zusammen mit dem XAML-Kompilierungsverhalten deklariert keine Felder, die Elementinstanzen als öffentlich speichern, es sei denn, Sie legen die x:FieldModifier
so fest, dass der öffentliche Zugriff zugelassen wird.
x:FieldModifier
ist nur für Elemente mit einer x:Name Directive relevant, da dieser Name verwendet wird, um auf das Feld zu verweisen, nachdem es öffentlich ist.
Standardmäßig ist die partielle Klasse für das Stammelement öffentlich; Sie können es jedoch nichtublic machen, indem Sie die x:ClassModifier-Direktiveverwenden. Die x:ClassModifier-Direktive wirkt sich auch auf die Zugriffsebene der Instanz der Stammelementklasse aus. Sie können sowohl x:Name
als auch x:FieldModifier
in das Stammelement einfügen. Dadurch wird jedoch nur eine öffentliche Feldkopie des Stammelements erstellt, wobei die Zugriffsstufe der wahren Stammelementklasse weiterhin durch x:ClassModifier-Direktivegesteuert wird.
Siehe auch
.NET Desktop feedback