DependencyProperty.ReadOnly Proprietà

Definizione

Ottiene un valore che indica se la proprietà di dipendenza identificata da questa istanza DependencyProperty è una proprietà di dipendenza di sola lettura.Gets a value that indicates whether the dependency property identified by this DependencyProperty instance is a read-only dependency property.

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.true if the dependency property is read-only; otherwise, false.

Esempi

Nell'esempio seguente vengono ottenuti i metadati predefiniti e le proprietà dell'identificatore della 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".The following example obtains the default metadata and the dependency property identifier properties from various dependency property fields, and uses the information to populate a table to implement a "metadata browser".

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 nel sistema di proprietà chiamando il metodo RegisterReadOnly anziché il metodo Register.Read-only dependency properties are registered within the property system by calling the RegisterReadOnly method as opposed to the Register method. Le proprietà associate possono anche essere registrate come di sola lettura. vedere RegisterAttachedReadOnly.Attached properties can also be registered as read-only; see RegisterAttachedReadOnly.

Le proprietà di dipendenza di sola lettura richiedono un identificatore DependencyPropertyKey anziché un identificatore DependencyProperty per eseguire operazioni sui metadati, ad esempio l'override dei metadati o l'impostazione del valore.Read-only dependency properties require a DependencyPropertyKey identifier rather than a DependencyProperty identifier to perform metadata operations such as overriding the metadata or setting the value. Se è stata ottenuta una raccolta di identificatori di DependencyProperty tramite una chiamata a GetLocalValueEnumerator o a un'altra API che espone gli identificatori, controllare il valore ReadOnly prima di chiamare SetValue o OverrideMetadata usando tale identificatore della proprietà di dipendenza come parametro di input, per verificare che la proprietà di dipendenza che l'identificatore rappresenta non sia di sola lettura.If you obtained a collection of DependencyProperty identifiers through a call to GetLocalValueEnumerator or another API that exposes identifiers, check the ReadOnly value before attempting to call SetValue or OverrideMetadata using that dependency property identifier as an input parameter, to verify that the dependency property that the identifier represents is not read-only. Se il valore di ReadOnly è true in una proprietà di dipendenza, non esiste alcun modo programmatico per ottenere un riferimento all'identificatore DependencyPropertyKey della proprietà di dipendenza, dai metadati o dall'identificatore DependencyProperty; per chiamare SetValue(DependencyPropertyKey, Object) su una proprietà di dipendenza di sola lettura, l'identificatore deve essere disponibile come campo statico.If the value of ReadOnly is true on a dependency property, there is no programmatic way to obtain a reference to the DependencyPropertyKey identifier of that dependency property, from the metadata or from the DependencyProperty identifier; the identifier must be available as a static field in order to call SetValue(DependencyPropertyKey, Object) against a read-only dependency property.

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 CLRCLR.When you create a custom dependency property, and register it as read-only, you should define only a get accessor for the CLRCLR wrapper property. In caso contrario, la classe disporrà di un modello a oggetti confuso per il wrapper della proprietà rispetto all'accesso alla proprietà di dipendenza di backup.Otherwise, your class will have a confusing object model for the property wrapper as compared to the access to the backing dependency property. Per informazioni dettagliate, vedere proprietà di dipendenza personalizzate o proprietà di dipendenza di sola lettura.For details, see Custom Dependency Properties or Read-Only Dependency Properties.

Si applica a

Vedi anche