x:FieldModifier, directive
Modifie le comportement de compilation XAML afin que les champs pour les références d’objets nommés soient définis avec TypeAttributes.Public l' TypeAttributes.NotPublic accès au lieu du comportement par défaut.
Utilisation d'attributs XAML
<object x:FieldModifier="Public".../>
Valeurs XAML
Valeur | Description |
---|---|
Public | La chaîne exacte que vous transmettez pour spécifier TypeAttributes.Public et TypeAttributes.NotPublic varie selon le langage de programmation code-behind utilisé. Consultez la section Notes. |
Dépendances
Si une production XAML utilise x:FieldModifier
n’importe où, l’élément racine de cette production XAML doit déclarer une directive x :Class.
Remarques
x:FieldModifier
ne s’applique pas à la déclaration du niveau d’accès général d’une classe ou de ses membres. Elle s’applique uniquement au comportement de traitement XAML lorsqu’un objet XAML particulier qui fait partie d’une production XAML est traité, et devient un objet potentiellement accessible dans le graphique d’objet d’une application. Par défaut, la référence de champ pour un tel objet est gardée privée, ce qui empêche les utilisateurs du contrôle de modifier directement le graphique d’objet. Au lieu de cela, les consommateurs de contrôle sont censés modifier le graphique d’objet à l’aide de modèles standard qui sont activés par les modèles de programmation, par exemple en obtenant la racine de la disposition, les collections d’éléments enfants, les propriétés publiques dédiées, et ainsi de suite.
La valeur de l' x:FieldModifier
attribut varie en fonction du langage de programmation, et son objectif peut varier dans des frameworks spécifiques. La chaîne à utiliser dépend de la façon dont chaque langage implémente son CodeDomProvider et les convertisseurs de type qu’elle retourne pour définir les significations pour TypeAttributes.Public et TypeAttributes.NotPublic , et si cette langue respecte la casse.
Pour C#, la chaîne à passer à Designate TypeAttributes.Public est
public
.pour Microsoft Visual Basic .net, la chaîne à transmettre à designate TypeAttributes.Public est
Public
.Pour C++/CLI, aucune cible n’existe actuellement pour XAML. par conséquent, la chaîne à passer est non définie.
vous pouvez également spécifier TypeAttributes.NotPublic ( internal
en C#, dans Visual Basic), Friend
mais la spécification TypeAttributes.NotPublic est inhabituelle, car NotPublic
le comportement est déjà la valeur par défaut.
TypeAttributes.NotPublic est le comportement par défaut, car il est peu fréquent que le code en dehors de l’assembly qui a compilé le XAML ait besoin d’accéder à un élément créé par XAML. L’architecture de la sécurité WPF et le comportement de compilation XAML ne déclarent pas les champs qui stockent des instances d’élément comme étant publics, sauf si vous définissez spécifiquement le pour autoriser l' x:FieldModifier
accès public.
x:FieldModifier
s’applique uniquement aux éléments avec une directive x :Name , car ce nom est utilisé pour référencer le champ une fois qu’il est public.
Par défaut, la classe partielle pour l’élément racine est publique ; Toutefois, vous pouvez le rendre non public à l’aide de la directive x :ClassModifier. La directive x :ClassModifier affecte également le niveau d’accès de l’instance de la classe d’élément racine. Vous pouvez placer x:Name
et x:FieldModifier
sur l’élément racine, mais cela crée uniquement une copie de champ public de l’élément racine, avec le niveau d’accès de classe d’élément racine true toujours contrôlé par la directive x :ClassModifier.