x:FieldModifier (Directiva)
Modifica el comportamiento de compilación XAML para que los campos de las referencias de objeto con nombre se definan con TypeAttributes.Public acceso en lugar del comportamiento predeterminado de TypeAttributes.NotPublic.
Uso de atributos XAML
<object x:FieldModifier="Public".../>
Valores XAML
Valor | Descripción |
---|---|
pública | La cadena exacta que se pasa para especificar TypeAttributes.Public frente a TypeAttributes.NotPublic varía, en función del lenguaje de programación subyacente que se usa. Vea comentarios. |
Dependencias
Si una producción XAML usa x:FieldModifier
en cualquier lugar, el elemento raíz de esa producción XAML debe declarar un directiva x:Class.
Observaciones
x:FieldModifier
no es relevante para declarar el nivel de acceso general de una clase o sus miembros. Solo es relevante para el comportamiento de procesamiento xaml cuando se procesa un objeto XAML determinado que forma parte de una producción XAML y se convierte en un objeto que es potencialmente accesible en el gráfico de objetos de una aplicación. De forma predeterminada, la referencia de campo para este objeto se mantiene privada, lo que impide que los consumidores de control modifiquen el gráfico de objetos directamente. En su lugar, se espera que los consumidores de control modifiquen el gráfico de objetos mediante patrones estándar habilitados por modelos de programación, como obtener la raíz del diseño, las colecciones de elementos secundarios, las propiedades públicas dedicadas, etc.
El valor del atributo x:FieldModifier
varía según el lenguaje de programación y su finalidad puede variar en marcos específicos. La cadena que se va a usar depende de cómo implementa cada idioma sus CodeDomProvider y los convertidores de tipos que devuelve para definir los significados de TypeAttributes.Public y TypeAttributes.NotPublic, y si ese idioma distingue mayúsculas de minúsculas.
Para C#, la cadena que se va a pasar para designar TypeAttributes.Public es
public
.Para .NET de Microsoft Visual Basic, la cadena que se va a pasar para designar TypeAttributes.Public es
Public
.En el caso de C++/CLI, no existen destinos para XAML actualmente; por lo tanto, la cadena que se va a pasar no está definida.
También puede especificar TypeAttributes.NotPublic (internal
en C#, Friend
en Visual Basic), pero especificar TypeAttributes.NotPublic es inusual porque NotPublic
como comportamiento ya es el valor predeterminado.
TypeAttributes.NotPublic es el comportamiento predeterminado porque es poco frecuente que el código fuera del ensamblado que compiló el XAML necesita acceso a un elemento creado por XAML. La arquitectura de seguridad de WPF junto con el comportamiento de compilación XAML no declarará campos que almacenan instancias de elemento como públicas, a menos que establezca específicamente el x:FieldModifier
para permitir el acceso público.
x:FieldModifier
solo es relevante para los elementos con una directiva x:Name porque ese nombre se usa para hacer referencia al campo después de que sea público.
De forma predeterminada, la clase parcial del elemento raíz es pública; sin embargo, puede convertirlo en nopublic mediante el directiva x:ClassModifier. El x:Name
como x:FieldModifier
en el elemento raíz, pero esto solo hace una copia de campo público del elemento raíz, con el nivel de acceso de clase de elemento raíz verdadero controlado por directiva x:ClassModifier.
Consulte también
- CLASES XAML y personalizadas para wpF
- Code-Behind y XAML en WPF
-
directiva x:Name - Compilar una aplicación WPF (WPF)
- de directiva x:ClassModifier
.NET Desktop feedback