Hola Edgar,
Para que las propiedades sean read-only, puedes hacerlo sobreescribiendo en tu objeto el método que extiende las definiciones, de la siguiente forma:
protected override void ExtendObjectPropertyDefinition(PropertiesDefinition propDefinition)
{
base.ExtendObjectPropertyDefinition(propDefinition);
propDefinition.GetPropDefinition(KBObjectProperties.Name).Resolvers.Add(new ReadOnlyResolver());
propDefinition.GetPropDefinition(KBObjectProperties.Description).Resolvers.Add(new ReadOnlyResolver());
...
}
Donde ReadOnlyResolver es una clase que implementa la interfaz Artech.Common.Properties.IReadOnlyResolver y devuelve true en el método IsReadOnly().
Sobre el otro tema, para que no sea “creable por el usuario”, debes ponerle el flag NoCreateble entre los ObjectTypeFlags del descriptor. O sea:
[KBObjectDescriptor("", "My Object Type", "", <icono>, ObjectTypeFlags.NoCreateble)]
public class MyObjectType : KBObject
...
Saludos,
- Matías
From: Edgar Jimenez [mailto:gxejimenez@gmail.com]
Sent: Monday, November 01, 2010 18:25
To: genexusextensions@gxlists.com
Subject: [genexusextensions] Propiedades estandar como readonly
Hola,
En la extension que estoy haciendo, creo nuevos tipos de objetos, y quisera que las propiedades "name", "description" y "folder" sean readonly.
El codigo que estoy usando para crear los objetos desde una toolwindow es:
MyObjectType
ur = KBObject.Create<MyObjectType>(UIServices.KB.CurrentModel);
Otra pregunta, como puedo hacer que el tipo de objeto no aparezca en el dialogo "new object"?
Saludos
Edgar Jimenez Demestri
Consultor Genexus
0 Response to "RE: [genexusextensions] Propiedades estandar como readonly"
Publicar un comentario