Diretiva x:FieldModifier
Modifica o comportamento de compilação XAML para que os TypeAttributes.NotPublic campos para referências de objeto nomeado sejam definidos com TypeAttributes.Public acesso em vez do comportamento padrão.
Uso do Atributo XAML
<object x:FieldModifier="Public".../>
Valores XAML
Valor | Descrição |
---|---|
Público | A cadeia de caracteres exata que você passa para especificar TypeAttributes.Public versus TypeAttributes.NotPublic varia, dependendo da linguagem de programação code-behind usada. Consulte Observações. |
Dependências
Se uma produção XAML for usada x:FieldModifier
em qualquer lugar, o elemento raiz dessa produção XAML deverá declarar uma diretiva x:Class.
Comentários
x:FieldModifier
não é relevante para declarar o nível de acesso geral de uma classe ou de seus membros. É relevante apenas para o comportamento de processamento de XAML quando um objeto XAML específico que faz parte de uma produção XAML é processado e se torna um objeto potencialmente acessível no gráfico de objetos de um aplicativo. Por padrão, a referência de campo para tal objeto é mantida privada, o que impede que os consumidores de controle modifiquem o gráfico de objeto diretamente. Em vez disso, espera-se que os consumidores de controle modifiquem o gráfico de objeto usando padrões padrão habilitados por modelos de programação, como obtendo a raiz do layout, as coleções de elementos filho, as propriedades públicas dedicadas e assim por diante.
O valor do atributo varia de acordo com a x:FieldModifier
linguagem de programação e sua finalidade pode variar em estruturas específicas. A cadeia de caracteres a ser usada depende de como cada idioma implementa seus CodeDomProvider conversores e os tipos que retorna para definir os significados para TypeAttributes.Public e , e TypeAttributes.NotPublicse esse idioma diferencia maiúsculas de minúsculas.
Para C#, a cadeia de caracteres a ser passada para designar TypeAttributes.Public é
public
.Para o Microsoft Visual Basic .NET, a cadeia de caracteres a ser passada para designar TypeAttributes.Public é
Public
.Para C++/CLI, não existem destinos para XAML no momento; portanto, a cadeia de caracteres a ser passada é indefinida.
Você também pode especificar (internal
em C#, Friend
no Visual Basic), mas especificar TypeAttributes.NotPublicTypeAttributes.NotPublic é incomum porque NotPublic
como o comportamento já é o padrão.
TypeAttributes.NotPublic é o comportamento padrão porque é pouco frequente que o código fora do assembly que compilou o XAML precise de acesso a um elemento criado por XAML. A arquitetura de segurança do WPF juntamente com o comportamento de compilação XAML não declarará os campos que armazenam instâncias de elemento como públicos, a menos que você defina especificamente o x:FieldModifier
para permitir acesso público.
x:FieldModifier
só é relevante para elementos com uma diretiva x:Name porque esse nome é usado para fazer referência ao campo depois que ele é público.
Por padrão, a classe parcial para o elemento raiz é pública; no entanto, você pode torná-lo não público usando a diretiva x:ClassModifier. A diretiva x:ClassModifier também afeta o nível de acesso da instância da classe do elemento raiz. Você pode colocar ambos x:Name
e x:FieldModifier
no elemento raiz, mas isso só torna uma cópia de campo público do elemento raiz, com o nível de acesso de classe de elemento raiz verdadeiro ainda controlado pela diretiva x:ClassModifier.
Confira também
.NET Desktop feedback