Propiedades (y atributos) de estructuras en Bindings

// La instancia de BorderSides se tiene que establecer a un valor predeterminado.
// Esto antes se hacía con el DefaultValue de la propiedad de dependencia BorderSides.
// El problema es que la instancia era compartida entre todos los ColumnsTextDocPath
// Tampoco puede ser una estructura, porque si no, los Bindings no actualizan nada en la UI.
BorderSides = new BorderSides
{
    Left = true,
    Top = true,
    Right = true,
    Bottom = true,
};

¿Te suena esto?

Resulta que si tú tienes una propiedad de un objeto y esta propiedad tiene un valor que es una estructura en vez de una clase, los bindings a esa propiedad crean una copia de esa estructura (no son referencias, sino valores). Por ese motivo, no es posible “enlazar” instancias como se haría con una referencia a objeto, sino que son 2 objetos distintos.

Por eso en la PropertyGrid si una propiedad es una estructura, los editores de dicha propiedad (siendo compuesta), no son capaces de trazar los cambios de las propiedades de dicha propiedad.

Y si no te enteras de lo que te estoy diciendo, te jodes como Herodes Smile with tongue out

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s