none
BindingSource con Objetos, Herencia y Polimorfismo RRS feed

  • Pregunta

  • ¡Buenas!

    Trabajando con BindingSources con Object Data Sources se me ha presentado el siguiente problema:

    Tengo una jerarquía de clases, Persona, PersonaFisica y PersonaJuridica. PersonaFísica y PersonaJuridica derivan de Persona, que es una clase abstracta que implementa las propiedades comunes de ambos tipos de persona.

    Tengo un BindingSource basado en un ObjectDataSource de Persona y quiero hacer un formulario de ingreso/modificación de datos que me sirva para personas de ambos tipos.

    Naturalmente, como el BindingSource está basado en la clase Persona, las propiedades de PersonaNatural y PersonaJuridica no están disponibles.

    La pregunta es: ¿Cómo puedo usar las facilidades de binding en esta situación? ¿Existe una forma fácil de hacerlo? ¿Vale la pena, cada vez que se actualiza el Current del BindingSource re-hacer el binding de todos los campos dependiendo del tipo de Persona o es mejor trabajar sin binding y hacer la actualización de las propiedades y de la UI? ¿Me convendría implementar una composición/façade para facilitar el binding?

    Muchas gracias!


    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    martes, 1 de enero de 2013 15:56

Respuestas

  • como el BindingSource está basado en la clase Persona, las propiedades de PersonaNatural y PersonaJuridica no están disponibles.

    desde el diseñador me sonaria raro que disongas de las propiedades de una entidad derivada para seleccionar

    quizas si asignas la propiedad desde codigo, creando el binding dinamicamente quizas funcione, peor la verdad no lo he probado

    pero calculo que si tienes que hacer esto seria mejor asignar desde codigo el valor al control

    ¿Vale la pena, cada vez que se actualiza el Current del BindingSource re-hacer el binding de todos los campos dependiendo del tipo de Persona o es mejor trabajar sin binding y hacer la actualización de las propiedades y de la UI?

    ese seria el tema, vale la pena

    que ventaja obtienes con el binding? es mas como haces para ocultar o deshabilitar controles que no formen parte de una determinada implementacion de la entidad, algun campo que persona juridica tenga pero no las otras entidades

    ¿Me convendría implementar una composición/façade para facilitar el binding?

    no le veo relacion de la fachada con el binding

    la fachada la usarias como medio para desacoplar la UI de la logica del negocio, quizas la uses para asignar el DataSource del binding, pero no veo como la afectaria

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 1 de enero de 2013 18:53