x:FieldModifier (Directiva)x:FieldModifier Directive

Modifica el TypeAttributes.Public TypeAttributes.NotPublic comportamiento de la compilación de XAML para que los campos de las referencias a objetos con nombre se definan con acceso en lugar del comportamiento predeterminado.Modifies XAML compilation behavior so that fields for named object references are defined with TypeAttributes.Public access instead of the TypeAttributes.NotPublic default behavior.

Uso de atributos XAMLXAML Attribute Usage

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

Valores XAMLXAML Values

PublicPublic La cadena exacta que se pasa para TypeAttributes.Public especificar TypeAttributes.NotPublic frente a varía en función del lenguaje de programación de código subyacente que se use.The exact string you pass to specify TypeAttributes.Public versus TypeAttributes.NotPublic varies, depending on the code-behind programming language that is used. Vea la sección Comentarios.See Remarks.

DependenciasDependencies

Si una producción de XAML x:FieldModifier utiliza en cualquier parte, el elemento raíz de esa producción de XAML debe declarar una Directiva x:Class.If a XAML production uses x:FieldModifier anywhere, the root element of that XAML production must declare an x:Class Directive.

ComentariosRemarks

x:FieldModifierno es relevante para declarar el nivel de acceso general de una clase o sus miembros.x:FieldModifier is not relevant for declaring the general access level of a class or its members. Solo es pertinente para el comportamiento de procesamiento de XAML cuando se procesa un objeto XAML determinado que forma parte de una producción de XAML y se convierte en un objeto al que se puede tener acceso en el gráfico de objetos de una aplicación.It is relevant only for XAML-processing behavior when a particular XAML object that is part of a XAML production is processed, and becomes an object that is potentially accessible in the object graph of an application. De forma predeterminada, la referencia de campo para este tipo de objeto se mantiene privada, lo que evita que los consumidores del control modifiquen el gráfico de objetos directamente.By default, the field reference for such an object is kept private, which prevents control consumers from modifying the object graph directly. En su lugar, se espera que los consumidores de control modifiquen el gráfico de objetos mediante patrones estándar habilitados por los modelos de programación, por ejemplo, obteniendo la raíz del diseño, las colecciones de elementos secundarios, las propiedades públicas dedicadas, etc.Instead, control consumers are expected to modify the object graph by using standard patterns that are enabled by programming models, such as by obtaining the layout root, the child element collections, the dedicated public properties, and so on.

El valor x:FieldModifier del atributo varía según el lenguaje de programación y su finalidad puede variar en marcos de trabajo específicos.The value for the x:FieldModifier attribute varies by programming language, and its purpose can vary in specific frameworks. La cadena que se va a usar depende de cómo cada lenguaje CodeDomProvider implementa su y los convertidores de tipos que devuelve para definir TypeAttributes.Public los TypeAttributes.NotPublicsignificados para y, y si ese idioma distingue entre mayúsculas y minúsculas.The string to use depends on how each language implements its CodeDomProvider and the type converters it returns to define the meanings for TypeAttributes.Public and TypeAttributes.NotPublic, and whether that language is case sensitive.

  • Para C#, la cadena que TypeAttributes.Public se va a pasar a Designate es. publicFor C#, the string to pass to designate TypeAttributes.Public is public.

  • Para Microsoft Visual Basic .net, la cadena que TypeAttributes.Public se va a pasar a Design es. PublicFor Microsoft Visual Basic .NET, the string to pass to designate TypeAttributes.Public is Public.

  • En C++el caso de/CLI, no existe ningún destino para XAML actualmente; por lo tanto, la cadena que se va a pasar no está definida.For C++/CLI, no targets for XAML currently exist; therefore, the string to pass is undefined.

TypeAttributes.NotPublic También puede especificar (internal en C# Friend ,enNotPublic Visual Basic), pero especificar esinusualporqueyaeselcomportamientopredeterminado.TypeAttributes.NotPublicYou can also specify TypeAttributes.NotPublic (internal in C#, Friend in Visual Basic) but specifying TypeAttributes.NotPublic is unusual because NotPublic as the behavior is already the default.

TypeAttributes.NotPublices el comportamiento predeterminado porque es poco frecuente que el código fuera del ensamblado que compiló el XAML necesite tener acceso a un elemento creado en XAML.TypeAttributes.NotPublic is the default behavior because it is infrequent that code outside the assembly that compiled the XAML needs access to a XAML-created element. La arquitectura de seguridad de WPF junto con el comportamiento de la compilación de XAML no declarará los campos que almacenan x:FieldModifier las instancias de elemento como públicas, a menos que establezca específicamente para permitir el acceso público.WPF security architecture together with XAML compilation behavior will not declare fields that store element instances as public, unless you specifically set the x:FieldModifier to allow public access.

x:FieldModifiersolo es pertinente para los elementos con una Directiva x:Name porque ese nombre se usa para hacer referencia al campo después de ser público.x:FieldModifier is only relevant for elements with an x:Name Directive because that name is used to reference the field after it is public.

De forma predeterminada, la clase parcial para el elemento raíz es pública; sin embargo, puede hacer que sea no público mediante la Directiva x:ClassModifier (.By default, the partial class for the root element is public; however, you can make it nonpublic by using the x:ClassModifier Directive. La Directiva x:ClassModifier ( también afecta al nivel de acceso de la instancia de la clase de elemento raíz.The x:ClassModifier Directive also affects the access level of the instance of the root element class. Puede colocar x:Name y x:FieldModifier en el elemento raíz, pero esto solo crea una copia de campo pública del elemento raíz, con el nivel de acceso de la clase de elemento raíz verdadero controlado por la Directiva x:ClassModifier (.You can put both x:Name and x:FieldModifier on the root element, but this only makes a public field copy of the root element, with the true root element class access level still controlled by x:ClassModifier Directive.

Vea tambiénSee also