Direttiva x:FieldModifier
Modifica il comportamento di compilazione XAML in modo che i campi per i riferimenti a oggetti denominati siano definiti con TypeAttributes.Public accesso anziché con il TypeAttributes.NotPublic comportamento predefinito.
Uso della sintassi XAML per gli attributi
<object x:FieldModifier="Public".../>
Valori XAML
Valore | Descrizione |
---|---|
Pubblica | La stringa esatta da passare per specificare TypeAttributes.Public o TypeAttributes.NotPublic varia a seconda del linguaggio di programmazione code-behind usato. Vedere la sezione Osservazioni. |
Dipendenze
Se un ambiente di produzione XAML usa x:FieldModifier
un punto qualsiasi, l'elemento radice di tale produzione XAML deve dichiarare una direttiva x:Class.
Osservazioni
x:FieldModifier
non è rilevante per dichiarare il livello di accesso generale di una classe o dei relativi membri. È rilevante solo per il comportamento di elaborazione XAML quando viene elaborato un particolare oggetto XAML che fa parte di una produzione XAML e diventa un oggetto potenzialmente accessibile nell'oggetto grafico di un'applicazione. Per impostazione predefinita, il riferimento al campo per tale oggetto viene mantenuto privato, che impedisce ai consumer di controllare di modificare direttamente l'oggetto grafico. È invece previsto che i consumer di controlli modifichino l'oggetto grafico usando modelli standard abilitati dai modelli di programmazione, ad esempio ottenendo la radice del layout, le raccolte di elementi figlio, le proprietà pubbliche dedicate e così via.
Il valore dell'attributo varia in base al x:FieldModifier
linguaggio di programmazione e lo scopo può variare in framework specifici. La stringa da usare dipende dal modo in cui ogni linguaggio implementa CodeDomProvider e i convertitori di tipi restituiti per definire i significati per TypeAttributes.Public e TypeAttributes.NotPublice e se tale linguaggio fa distinzione tra maiuscole e minuscole.
Per C#, la stringa da passare per designare TypeAttributes.Public è
public
.Per Microsoft Visual Basic .NET, la stringa da passare per designare TypeAttributes.Public è
Public
.Per C++/CLI, attualmente non esistono destinazioni per XAML; pertanto, la stringa da passare non è definita.
È anche possibile specificare TypeAttributes.NotPublic (internal
in C#, Friend
in Visual Basic), ma specificare TypeAttributes.NotPublic è insolito perché NotPublic
il comportamento è già l'impostazione predefinita.
TypeAttributes.NotPublic è il comportamento predefinito perché è poco frequente che il codice all'esterno dell'assembly compilato in XAML debba accedere a un elemento creato da XAML. L'architettura di sicurezza WPF insieme al comportamento di compilazione XAML non dichiarerà i campi che archivieranno le istanze degli elementi come pubbliche, a meno che non imposti in modo specifico per consentire l'accesso x:FieldModifier
pubblico.
x:FieldModifier
è rilevante solo per gli elementi con una direttiva x:Name perché tale nome viene usato per fare riferimento al campo dopo che è pubblico.
Per impostazione predefinita, la classe parziale per l'elemento radice è pubblica; Tuttavia, è possibile renderlo non pubblico usando la direttiva x:ClassModifier. La direttiva x:ClassModifier influisce anche sul livello di accesso dell'istanza della classe dell'elemento radice. È possibile inserire sia che x:Name
x:FieldModifier
sull'elemento radice, ma in questo modo viene eseguita solo una copia pubblica dell'elemento radice, con il livello di accesso della classe dell'elemento radice reale ancora controllato dalla direttiva x:ClassModifier.
Vedi anche
.NET Desktop feedback