DependencyProperty.ReadOnly Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se la proprietà di dipendenza identificata da questa DependencyProperty istanza è una proprietà di dipendenza di sola lettura.
public:
property bool ReadOnly { bool get(); };
public bool ReadOnly { get; }
member this.ReadOnly : bool
Public ReadOnly Property ReadOnly As Boolean
Valore della proprietà
true se la proprietà di dipendenza è di sola lettura; in caso contrario, false.
Esempio
Nell'esempio seguente vengono ottenuti i metadati predefiniti e le proprietà dell'identificatore di proprietà di dipendenza da vari campi delle proprietà di dipendenza e vengono utilizzate le informazioni per popolare una tabella per implementare un "browser dei metadati".
pm = dp.GetMetadata(dp.OwnerType);
MetadataClass.Text = pm.GetType().Name;
TypeofPropertyValue.Text = dp.PropertyType.Name;
DefaultPropertyValue.Text = (pm.DefaultValue!=null) ? pm.DefaultValue.ToString() : "null";
HasCoerceValue.Text = (pm.CoerceValueCallback == null) ? "No" : pm.CoerceValueCallback.Method.Name;
HasPropertyChanged.Text = (pm.PropertyChangedCallback == null) ? "No" : pm.PropertyChangedCallback.Method.Name;
ReadOnly.Text = (dp.ReadOnly) ? "Yes" : "No";
pm = dp.GetMetadata(dp.OwnerType)
MetadataClass.Text = pm.GetType().Name
TypeofPropertyValue.Text = dp.PropertyType.Name
DefaultPropertyValue.Text = If((pm.DefaultValue IsNot Nothing), pm.DefaultValue.ToString(), "null")
HasCoerceValue.Text = If((pm.CoerceValueCallback Is Nothing), "No", pm.CoerceValueCallback.Method.Name)
HasPropertyChanged.Text = If((pm.PropertyChangedCallback Is Nothing), "No", pm.PropertyChangedCallback.Method.Name)
[ReadOnly].Text = If((dp.ReadOnly), "Yes", "No")
Commenti
Le proprietà di dipendenza di sola lettura vengono registrate all'interno del sistema di proprietà chiamando il RegisterReadOnly metodo anziché il Register metodo . Le proprietà associate possono anche essere registrate come di sola lettura; vedere RegisterAttachedReadOnly.
Le proprietà di dipendenza di sola lettura richiedono un DependencyPropertyKey identificatore anziché un DependencyProperty identificatore per eseguire operazioni sui metadati, ad esempio l'override dei metadati o l'impostazione del valore. Se è stata ottenuta una raccolta di DependencyProperty identificatori tramite una chiamata a GetLocalValueEnumerator o un'altra API che espone gli identificatori, controllare il ReadOnly valore prima di tentare di chiamare SetValue o OverrideMetadata usare tale identificatore di proprietà di dipendenza come parametro di input, per verificare che la proprietà di dipendenza rappresentata dall'identificatore non sia di sola lettura. Se il valore di si trova ReadOnly in una proprietà di true dipendenza, non esiste un modo programmatico per ottenere un riferimento all'identificatore DependencyPropertyKey della proprietà di dipendenza, dai metadati o dall'identificatore. L'identificatore DependencyProperty deve essere disponibile come campo statico per chiamare SetValue(DependencyPropertyKey, Object) su una proprietà di dipendenza di sola lettura.
Quando si crea una proprietà di dipendenza personalizzata e la si registra come di sola lettura, è necessario definire solo una funzione di accesso get per la proprietà wrapper CLR. In caso contrario, la classe avrà un modello a oggetti confuso per il wrapper della proprietà rispetto all'accesso alla proprietà di dipendenza di backup. Per informazioni dettagliate, vedere Proprietà di dipendenza personalizzate o Read-Only proprietà di dipendenza.