Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo implementar una propiedad de dependencia mediante un DependencyProperty campo para realizar una copia de seguridad de una propiedad de Common Language Runtime (CLR). Las propiedades de dependencia admiten varias características avanzadas del sistema de propiedades de Windows Presentation Foundation (WPF). Estas características incluyen estilos, enlaces de datos, herencia, animación y valores predeterminados. Si desea que las propiedades que defina sean compatibles con esas características, implemente las propiedades como una propiedad de dependencia.
Ejemplo
En el ejemplo siguiente se muestra cómo registrar una propiedad de dependencia mediante una llamada al Register método . El Register
método devuelve una DependencyProperty instancia denominada identificador de propiedad de dependencia. El identificador se almacena en un static readonly
campo y contiene el nombre y las características de una propiedad de dependencia.
El campo de identificador debe seguir la convención <property name>Property
de nomenclatura . Por ejemplo, si registra una propiedad de dependencia con el nombre Location
, el campo de identificador debe denominarse LocationProperty
. Si no sigue este patrón de nomenclatura, es posible que los diseñadores de WPF no notifiquen correctamente la propiedad y es posible que los aspectos de la aplicación de estilo de sistema de propiedades no se comporten según lo previsto.
En el ejemplo siguiente, el nombre de la propiedad de dependencia y su descriptor de acceso CLR es HasFish
, por lo que el campo de identificador se denomina HasFishProperty
. El tipo de propiedad de dependencia es Boolean y el tipo de propietario que registra la propiedad de dependencia es Aquarium
.
Puede especificar metadatos predeterminados para una propiedad de dependencia. En este ejemplo se establece un valor predeterminado de false
para la HasFish
propiedad de dependencia.
public class Aquarium : DependencyObject
{
public static readonly DependencyProperty HasFishProperty =
DependencyProperty.Register(
name: "HasFish",
propertyType: typeof(bool),
ownerType: typeof(Aquarium),
typeMetadata: new FrameworkPropertyMetadata(defaultValue: false));
public bool HasFish
{
get => (bool)GetValue(HasFishProperty);
set => SetValue(HasFishProperty, value);
}
}
Public Class Aquarium
Inherits DependencyObject
Public Shared ReadOnly HasFishProperty As DependencyProperty =
DependencyProperty.Register(
name:="HasFish",
propertyType:=GetType(Boolean),
ownerType:=GetType(Aquarium),
typeMetadata:=New FrameworkPropertyMetadata(defaultValue:=False))
Public Property HasFish As Boolean
Get
Return GetValue(HasFishProperty)
End Get
Set(value As Boolean)
SetValue(HasFishProperty, value)
End Set
End Property
End Class
Para obtener más información sobre cómo y por qué implementar una propiedad de dependencia, en lugar de simplemente respaldar una propiedad CLR con un campo privado, consulte Introducción a las propiedades de dependencia.
Consulte también
.NET Desktop feedback