x:FieldModifier-Direktive
Ändert das XAML-Kompilierverhalten so, dass Felder für benannte Objektverweise mit TypeAttributes.Public-Zugriff statt mit dem TypeAttributes.NotPublic-Standardverhalten definiert werden.
Verwendung von XAML-Attributen
<object x:FieldModifier="Public".../>
XAML-Werte
Öffentlich |
Welche Zeichenfolge genau zum Festlegen von TypeAttributes.Public im Vergleich zu TypeAttributes.NotPublic übergeben wird, ist unterschiedlich und hängt von der verwendeten Code-Behind-Programmiersprache ab. Siehe Hinweise. |
Abhängigkeiten
Wenn eine XAML-Produktion irgendwo x:FieldModifier verwendet, muss das Stammelement dieser XAML-Produktion einen x:Class-Direktive deklarieren.
Hinweise
x:FieldModifier ist nicht relevant zum Deklarieren der allgemeinen Zugriffsebene einer Klasse oder ihrer Member. 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 potenziell im Objektdiagramm einer Anwendung zugegriffen werden kann. Standardmäßig wird der Feldverweis für ein solches Objekt als privat beibehalten. So wird verhindert, dass Steuerelementconsumer das Objektdiagramm direkt ändern. Stattdessen wird erwartet, dass Steuerelementconsumer das Objektdiagramm mit Standardmustern ändern, die durch Programmierungsmodelle aktiviert werden, z. B. Abrufen des Layoutstamms, der untergeordneten Elementauflistungen, der dedizierten öffentlichen Eigenschaften usw.
Der Wert des x:FieldModifier-Attributs variiert je nach Programmiersprache, und sein Zweck kann in bestimmten Frameworks abweichen. 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.NotPublic zurückgegeben werden, und ob bei der Sprache die Groß- und Kleinschreibung beachtet werden muss.
In C# lautet die zum Festlegen von TypeAttributes.Public zu übergebende Zeichenfolge public.
In Microsoft Visual Basic .NET lautet die zum Festlegen von TypeAttributes.Public zu übergebende Zeichenfolge Public.
Für C++/CLI sind gegenwärtig keine Ziele für XAML vorhanden. Daher ist die zu übergebenden Zeichenfolge nicht definiert.
Sie können auch TypeAttributes.NotPublic (internal in C#, Friend in Visual Basic) festlegen, das Angeben von TypeAttributes.NotPublic ist unüblich, da NotPublicals Verhalten bereits die Standardeinstellung darstellt.
TypeAttributes.NotPublic ist das Standardverhalten, da nur selten Code außerhalb der Assembly, die das XAML kompilierte, auf ein XAML-erstelltes Element zugreifen muss. WPF-Sicherheitsarchitektur zusammen mit XAML-Kompilierungsverhalten deklariert keine Felder, die Elementinstanzen als öffentlich speichern, es sei denn, Sie legen den x:FieldModifier ausdrücklich zum Zulassen öffentlichen Zugriffs fest.
x:FieldModifier ist nur für Elemente mit einem x:Name-Direktive relevant, da der Name zum Verweis auf das Feld verwendet wird, nachdem es öffentlich ist.
Standardmäßig ist die partielle Klasse für das Stammelement öffentlich. Allerdings können Sie sie nicht öffentlich machen, indem Sie x:ClassModifier-Direktive verwenden. Das x:ClassModifier-Direktive 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-Direktive gesteuert wird.