Dependency Properties y Attached Properties, ¿Qué son?

Cuando estas empezando a aprender Silverlight o Windows Presentation Foundation (aka WPF) y las tecnologías lo hacen posible como por ejemplo XAML, empiezas a encontrar algunos conceptos nuevos que ha introducido ASP.NET 2008 y el Framework 3.5.

WPF, introduce un nuevo uso de las propiedades mucho más inteligente y sofisticado, estas son las Dependency Properties y las Attached Properties, dos tipos nuevos de propiedades (o un tipo y medio por lo menos) que nos proporciona el Framework y que nos vamos a cansar de usar cuando nos toque crear interfaces (y lo que no son interfaces) con XAML.

Dependency Properties

Una Dependency Property, es un tipo especial de propiedad que devuelve una propiedad .NET y además el valor de la susodicha Dependency Property, depende de otros elementos, por eso no es suficiente con una propiedad normal.

Las características de las Dependency Properties son:

  • Resolución de valor
  • Autovalidación
  • Valor por defecto
  • XAML friendly
  • Herencia de valor

Para usar una DependencyProperty, además de declararla, tenemos que registrarla, un ejemplo sería el siguiente:

public static readonly DependencyProperty TextSizeProperty = DependencyProperty.Register("TextSize", typeof(double), typeof(LoginScreenCS), null);
public double TextSize
{
get { return ((double)this.GetValue(TextSizeProperty)); }
set { this.SetValue(TextSizeProperty, value); }
}

Y otra característica que me ha encantado es que las DependencyProperties pueden notificar los cambios que en ella se producen (de ahí la característica de autovalidación):

private static void onTextSizeChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
if (((double)source.GetValue(e.Property)) > 36)
{
source.SetValue(e.Property, 36.0);
}
}

Attached Properties

Son un tipo especial de Dependency Property. Existen y se usan para que un elemento hijo, pueda almacenar un valor en una propiedad definida en un elemento padre.

Esto es todo por hoy, espero que haya quedado más o menos claro todo esto, si no es así pronto veremos ejemplos de todo esto.

3 pensamientos en “Dependency Properties y Attached Properties, ¿Qué son?

  1. Dependency Properties y Attached Properties, ¿Qué son? « a deshoras | extensiveproperty.com

Deja un comentario