¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

DependencyObject.SetValue (Método) (DependencyProperty, Object)

Actualización: noviembre 2007

Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia.

Espacio de nombres:  System.Windows
Ensamblado:  WindowsBase (en WindowsBase.dll)

public void SetValue(
	DependencyProperty dp,
	Object value
)
public void SetValue(
	DependencyProperty dp,
	Object value
)
public function SetValue(
	dp : DependencyProperty, 
	value : Object
)
No se pueden utilizar métodos en XAML.

Parámetros

dp
Tipo: System.Windows.DependencyProperty
Identificador de la propiedad de dependencia que se va a establecer.
value
Tipo: System.Object
Nuevo valor local.

ExcepciónCondición
InvalidOperationException

Se intentó modificar una propiedad de dependencia de sólo lectura o una propiedad en un DependencyObject sellado.

ArgumentException

value no era el tipo correcto registrado para la propiedad dp.

Si el tipo proporcionado no coincide con el tipo declarado para la propiedad de dependencia tal como se registró originalmente, se produce una excepción. El parámetro value siempre se debe proporcionar como el tipo adecuado.

Las condiciones de excepción se pueden ver afectadas por la devolución de llamada ValidateValueCallback que existe en el identificador de la propiedad de dependencia que se va a establecer. De lo contrario, el valor proporcionado podría producir un error en las condiciones de comprobación de tipos generales (por ejemplo, cuando se pasa una cadena y el tipo nativo es Double).

En este ejemplo se muestra cómo respaldar una propiedad common language runtime (CLR) con un campo DependencyProperty, para definir así una propiedad de dependencia. Si define sus propias propiedades y desea que admitan numerosos aspectos de la funcionalidad de Windows Presentation Foundation (WPF), incluidos los estilos, el enlace de datos, la herencia, la animación y los valores predeterminados, debe implementarlas como propiedades de dependencia.

En el ejemplo siguiente se registra en primer lugar una propiedad de dependencia llamando al método Register. El nombre del campo identificador que se utiliza para almacenar el nombre y las características de la propiedad de dependencia debe ser el valor de Name que eligió para la propiedad de dependencia como la parte de la llamada al método Register, con la cadena literal Property anexada a dicho valor. Por ejemplo, si registra una propiedad de dependencia cuyo valor de Name es Location, el campo identificador que defina para la propiedad de dependencia deberá denominarse LocationProperty.

En este ejemplo, el nombre de la propiedad de dependencia y su descriptor de acceso CLR es State; el campo de identificador es StateProperty; el tipo de la propiedad es Boolean; y el tipo que registra la propiedad de dependencia es MyStateControl.

Si no sigue este modelo de nombres, puede que los diseñadores no informen correctamente sobre la propiedad y es posible que algunos aspectos de la aplicación de estilos del sistema a las propiedades no se comporten como cabría esperar.

También puede especificar metadatos predeterminados para una propiedad de dependencia. En este ejemplo se registra que el valor predeterminado de la propiedad de dependenciaState es false.

public class MyStateControl : ButtonBase
{
  public MyStateControl() : base() { }
  public Boolean State
  {
    get { return (Boolean)this.GetValue(StateProperty); }
    set { this.SetValue(StateProperty, value); } 
  }
  public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
    "State", typeof(Boolean), typeof(MyStateControl),new PropertyMetadata(false));
}


Para obtener el ejemplo completo, vea Ejemplo Custom Classes with Dependency Properties.

Para obtener más información sobre cómo y por qué implementar una propiedad de dependencia, en lugar de limitarse a respaldar una propiedad CLR con un campo privado, vea Información general sobre las propiedades de dependencia.

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft