none
UserControl con binding a una propiedad que no sea DependencyProperty RRS feed

Respuestas

  • Hola Rafa,

    no se si he entendido muy bien tu pregunta, intentaré echar una mano si lo he entendido.

    solamente puedes aplicar un Binding una Dependecy property.

    Es decir si tienes un control con una propiedad llamada Color si quieres asignar un Binding, la propiedad Color debe ser DependencyProperty.

    Hay que tener en cuenta que la propiedad Color es el "target" del Binding, sin embargo el "source" del binding no necesita ser de tipo DependencyProperty aunque si lanzar un evento PropertyChanged cuando cambie su valor.

    Ahora bien, ¿como se puede hacer esto sin una DependencyProperty?. 

    Si lo piensas bien fundamentalmente el binding te garantiza que el target y el source se sincronicen. Podrías "simular" ese comportamiento suscribiendote al evento PropertyChanged del source y asignando tú el valor del source al target por código y viceversa.

    Si necesitas más aclaraciones o ejemplos de esto dímelo.


    Un saludo. Miguel A. González
    _________________________
    No olvides marcar este post como útil si te ha sido de ayuda

    • Propuesto como respuesta David_González martes, 15 de mayo de 2012 18:43
    • Marcado como respuesta Rafa Torres miércoles, 16 de mayo de 2012 6:32
    lunes, 14 de mayo de 2012 20:26

Todas las respuestas

  • Hola Rafa,

    no se si he entendido muy bien tu pregunta, intentaré echar una mano si lo he entendido.

    solamente puedes aplicar un Binding una Dependecy property.

    Es decir si tienes un control con una propiedad llamada Color si quieres asignar un Binding, la propiedad Color debe ser DependencyProperty.

    Hay que tener en cuenta que la propiedad Color es el "target" del Binding, sin embargo el "source" del binding no necesita ser de tipo DependencyProperty aunque si lanzar un evento PropertyChanged cuando cambie su valor.

    Ahora bien, ¿como se puede hacer esto sin una DependencyProperty?. 

    Si lo piensas bien fundamentalmente el binding te garantiza que el target y el source se sincronicen. Podrías "simular" ese comportamiento suscribiendote al evento PropertyChanged del source y asignando tú el valor del source al target por código y viceversa.

    Si necesitas más aclaraciones o ejemplos de esto dímelo.


    Un saludo. Miguel A. González
    _________________________
    No olvides marcar este post como útil si te ha sido de ayuda

    • Propuesto como respuesta David_González martes, 15 de mayo de 2012 18:43
    • Marcado como respuesta Rafa Torres miércoles, 16 de mayo de 2012 6:32
    lunes, 14 de mayo de 2012 20:26
  • Hola Rafa.

    Basicamente la notificacion de propiedades es una amplia extension del patron Observer muy utilizado en arquitecturas como MVC:

    http://www.dofactory.com/Patterns/PatternObserver.aspx

    Tienes la opcion de implementarlo tu mismo o hacer uso del evento PropertyChange como comenta miguel, en ambos casos vas a disponer de la misma funcionalidad, solamente la notificacion de un cambio de propiedad.

    Ahora bien, las propiedades de dependencia van mucho mas alla de una simple notificacion de cambio de propiedad que es la que implementa Dependencyobject basicamente. La funcionalidad completa la suministra la clase FrameworkElement y suministra compatibilidad con enlaces de datos y referencias a recursos dinamicos que a fin de cuentas es lo que le da la potencia al codigo XAML.


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    martes, 15 de mayo de 2012 18:42