DependencyObject Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un objeto que participa en el sistema de propiedades de dependencia.
public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
- Herencia
- Derivado
- Atributos
Ejemplos
En el ejemplo siguiente se deriva de DependencyObject para crear una nueva clase abstracta. A continuación, la clase registra una propiedad adjunta e incluye miembros de soporte técnico para esa propiedad adjunta.
public abstract class AquariumObject3 : DependencyObject
{
public enum Bouyancy
{
Floats,
Sinks,
Drifts
}
public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
"Bouyancy",
typeof(Bouyancy),
typeof(AquariumObject3),
new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
new ValidateValueCallback(ValidateBouyancy)
);
public static void SetBouyancy(UIElement element, Bouyancy value)
{
element.SetValue(BouyancyProperty, value);
}
public static Bouyancy GetBouyancy(UIElement element)
{
return (Bouyancy)element.GetValue(BouyancyProperty);
}
private static bool ValidateBouyancy(object value)
{
Bouyancy bTest = (Bouyancy) value;
return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
}
public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
"IsDirty",
typeof(Boolean),
typeof(AquariumObject3)
);
}
Public MustInherit Class AquariumObject3
Inherits DependencyObject
Public Enum Bouyancy
Floats
Sinks
Drifts
End Enum
Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
element.SetValue(BouyancyProperty, value)
End Sub
Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
Return CType(element.GetValue(BouyancyProperty), Bouyancy)
End Function
Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
Dim bTest As Bouyancy = CType(value, Bouyancy)
Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
End Function
Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class
Comentarios
La clase DependencyObject habilita los servicios del sistema de propiedades Windows Presentation Foundation (WPF) en sus muchas clases derivadas.
La función principal del sistema de propiedades es calcular los valores de las propiedades y proporcionar una notificación del sistema sobre los valores que han cambiado. Otra clase clave que participa en el sistema de propiedades es DependencyProperty. DependencyProperty habilita el registro de propiedades de dependencia en el sistema de propiedades y proporciona identificación e información sobre cada propiedad de dependencia, mientras que DependencyObject como una clase base permite a los objetos usar las propiedades de dependencia.
DependencyObject los servicios y características incluyen lo siguiente:
Compatibilidad con el hospedaje de propiedades de dependencia. Para registrar una propiedad de dependencia, llame al Register método y almacene el valor devuelto del método como un campo estático público en la clase.
Compatibilidad con hospedaje de propiedades adjuntas. Para registrar una propiedad adjunta, llame al RegisterAttached método y almacene el valor devuelto del método como un campo de solo lectura estático público en la clase. (También hay requisitos de miembros adicionales; tenga en cuenta que esto representa una implementación WPF específica para las propiedades adjuntas. Para obtener más información, consulte Información general sobre las propiedadesattached). A continuación, la propiedad adjunta se puede establecer en cualquier clase que derive de DependencyObject.
Obtiene, establece y borra los métodos de utilidad para los valores de las propiedades de dependencia que existen en .DependencyObject
Metadatos, compatibilidad con valores de coerción, notificación de cambio de propiedad e invalidación de devoluciones de llamada para propiedades de dependencia o propiedades adjuntas. Además, la DependencyObject clase facilita los metadatos de propiedad por propietario para una propiedad de dependencia.
Una clase base común para las clases derivadas de ContentElement, Freezableo Visual. (UIElement, otra clase de elemento base, tiene una jerarquía de clases que incluye Visual).
Constructores
| Nombre | Description |
|---|---|
| DependencyObject() |
Inicializa una nueva instancia de la clase DependencyObject. |
Propiedades
| Nombre | Description |
|---|---|
| DependencyObjectType |
Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia. |
| Dispatcher |
Obtiene el objeto al que DispatcherDispatcherObject está asociado. (Heredado de DispatcherObject) |
| IsSealed |
Obtiene un valor que indica si esta instancia está actualmente sellada (solo lectura). |
Métodos
| Nombre | Description |
|---|---|
| CheckAccess() |
Determina si el subproceso que llama tiene acceso a este DispatcherObject. (Heredado de DispatcherObject) |
| ClearValue(DependencyProperty) |
Borra el valor local de una propiedad. Un identificador especifica DependencyProperty la propiedad que se va a borrar. |
| ClearValue(DependencyPropertyKey) |
Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante .DependencyPropertyKey |
| CoerceValue(DependencyProperty) |
Coerce el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier CoerceValueCallback función especificada en metadatos de propiedad para la propiedad de dependencia tal como existe en la llamada DependencyObjecta . |
| Equals(Object) |
Determina si un proporcionado DependencyObject es equivalente al objeto actual DependencyObject. |
| GetHashCode() |
Obtiene un código hash para este DependencyObjectobjeto . |
| GetLocalValueEnumerator() |
Crea un enumerador especializado para determinar qué propiedades de dependencia tienen valores establecidos localmente en este DependencyObject. |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| GetValue(DependencyProperty) |
Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de .DependencyObject |
| InvalidateProperty(DependencyProperty) |
Vuelve a evaluar el valor efectivo de la propiedad de dependencia especificada. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Se invoca cada vez que se ha actualizado el valor efectivo de cualquier propiedad de dependencia en esto DependencyObject . La propiedad de dependencia específica que cambió se notifica en los datos del evento. |
| ReadLocalValue(DependencyProperty) |
Devuelve el valor local de una propiedad de dependencia, si existe. |
| SetCurrentValue(DependencyProperty, Object) |
Establece el valor de una propiedad de dependencia sin cambiar su origen de valor. |
| SetValue(DependencyProperty, Object) |
Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. |
| SetValue(DependencyPropertyKey, Object) |
Establece el valor local de una propiedad de dependencia de solo lectura, especificada por el DependencyPropertyKey identificador de la propiedad de dependencia. |
| ShouldSerializeProperty(DependencyProperty) |
Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada. |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| VerifyAccess() |
Exige que el subproceso de llamada tenga acceso a este DispatcherObject. (Heredado de DispatcherObject) |