Skip to content

En este post estaremos listando algunos tips útiles para usar el Framework XAF DevExpress.

Relaciones y Asociaciones de tablas

https://docs.devexpress.com/XPO/2041/create-a-data-model/relationships-between-objects

Como mostrar en cascada un select

[DefaultClassOptions]
public class Order : BaseObject {
   // ...
Accessory fAccessory;  [DataSourceProperty("Product.Accessories")] // Product es la tabla principal y Accesories es la secundaria
   public Accessory Accessory {
      get {
         return fAccessory;
      }
      set {
         SetPropertyValue(nameof(Accessory), ref fAccessory, value);
      }
   } 

} 

Propiedades de un campo

[ReadOnly(true)] // solo de lectura
[RuleRequiredField] // este campo es requerido
[VisibleInListView(false)] // no es visible en el listado 
[XafDisplayName(«Registrado por»)] // nombre que muestra el campo 
[Size(SizeAttribute.DefaultStringMappingFieldSize)] // por defecto es 100, pero se puede poner Size(-1) para texto
[ModelDefault(«AllowEdit», «False»)] // es solo de lectura, pero sin opción a escritura
 [Association] //asociado a una tabla //Aggregated para que sea uno a muchos

para ver más propiedades: https://docs.devexpress.com/XPO/2005/create-a-data-model/built-in-attributes

 

Para validar un correo

public const string EmailRegularExpression = «^[A-Za-z0-9_\\+-]+(\\.[A-Za-z0-9_\\+-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.([A-Za-z]{2,4})$»;

[RuleRegularExpression(EmailRegularExpression, CustomMessageTemplate = «El Correo debe ser válido!»)]

        [XafDisplayName(«Email de Contacto / Usuario»)]

        //[RuleUniqueValue]

        public string Email { get; set; }

Para unir dos campos, ejemplo nombre y apellido en uno solo

 public string FullName

        { get
   {

                string namePart = string.Format(«{0} {1}», LastName, FirstName);

                return namePart;
            }
        }

Opciones en el Namespace

[ModelDefault(«IsCloneable», «True»)] //para clonar un objeto
[Appearance(«Deshabilitar si ya esta activo», «IsActivo = true», Enables = false, TargetItems = «*»)]

WhatsApp chat