XAF框架学习:如何创建业务实体类和菜单页面视图布局

我们上一篇学习了如何创建XAF项目,感兴趣可以查看:https://www.cnblogs.com/xielong/p/16004570.html

接下来,我们学习如何创建XAF项目的实体类

1)找到 项目名.Module,在文件BusinessObject创建实体类(FruitsBase、Apples、Bananas)

 FruitsBase基类如下

using DevExpress.ExpressApp.DC;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.Validation;
using DevExpress.Xpo;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XAFStudyDemo.Module.BusinessObjects
{
    [XafDisplayName("水果基类")]
    [NonPersistent]
    public class FruitsBase: XPBaseObject
    {
        public FruitsBase(Session s) : base(s) { }

        [XafDisplayName("自增ID")]
        [Key(AutoGenerate = true),Browsable(false)]
        public int GID
        {
            get { return GetPropertyValue<int>(nameof(GID)); }
            set { SetPropertyValue(nameof(GID), value); }
        }

        [XafDisplayName("水果编号")]
        public string Code
        {
            get { return GetPropertyValue<string>(nameof(Code)); }
            set { SetPropertyValue(nameof(Code), value); }
        }

        [XafDisplayName("水果名称")]
        [RuleRequiredField("RuleRequiredField.FruitsBase.Name", DefaultContexts.Save, "名称不能为空")]
        public string Name
        {
            get { return GetPropertyValue<string>(nameof(Name)); }
            set
            {
                SetPropertyValue(nameof(Name), value);
            }
        }

        [XafDisplayName("水果种类")]
        public EnumFruitType Type
        {
            get { return GetPropertyValue<EnumFruitType>(nameof(Type)); }
            set { SetPropertyValue(nameof(Type), value); }
        }

        [XafDisplayName("水果介绍"), Size(2000)]
        public string Desc
        {
            get { return GetPropertyValue<string>(nameof(Desc)); }
            set { SetPropertyValue(nameof(Desc), value); }
        }

        [XafDisplayName("水果图片")]
        [ImageEditor(ImageEditorMode.PopupPictureEdit, ImageEditorMode.PictureEdit)]
        public byte[] ImageData
        {
            get { return GetPropertyValue<byte[]>(nameof(ImageData)); }
            set { SetPropertyValue(nameof(ImageData), value); }
        }

        [XafDisplayName("水果产地")]
        public string Place
        {
            get { return GetPropertyValue<string>(nameof(Place)); }
            set { SetPropertyValue(nameof(Place), value); }
        }

        [XafDisplayName("创建人")]
        public string Creater
        {
            get { return GetPropertyValue<string>(nameof(Creater)); }
            set { SetPropertyValue(nameof(Creater), value); }
        }

        [XafDisplayName("创建时间")]
        public DateTime CreateTime
        {
            get { return GetPropertyValue<DateTime>(nameof(CreateTime)); }
            set { SetPropertyValue(nameof(CreateTime), value); }
        }

        [XafDisplayName("推荐价格")]
        public decimal Price
        {
            get { return GetPropertyValue<decimal>(nameof(Price)); }
            set { SetPropertyValue(nameof(Price), value); }
        }
    }

    /// <summary>
    /// 水果种类
    /// </summary>
    public enum EnumFruitType
    {
        [XafDisplayName("苹果")]
        One = 1,
        [XafDisplayName("香蕉")]
        Two = 2,
        [XafDisplayName("葡萄")]
        Three = 3,
        [XafDisplayName("火龙果")]
        Four = 4,
        [XafDisplayName("龙眼")]
        Five = 5,

    }
}

Apples类继承FFruitsBase类,如下

using DevExpress.ExpressApp.DC;
using DevExpress.Persistent.Base;
using DevExpress.Xpo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace XAFStudyDemo.Module.BusinessObjects
{
    [XafDisplayName("苹果管理")]
    [DefaultClassOptions]
    public class Apples : FruitsBase
    {
        public Apples(Session s) : base(s) { }
    }
}

2)运行后,自动创建苹果管理、香蕉管理的两个菜单的三种视图(ListVew、DetailView、lookupView),默认视图布局如下:

2.1)列表视图

 

 2.2)详情视图

 3)更改视图默认布局(ListVew、DetailView、lookupView)

3.1)找到 项目名称.Win(XAFStudyDemo.Win)--> Model.xafml ,打开 Model.xafml 文件

  3.2)再查找,项目名称(XAFStudyDemo)--> Views--> XAFStudyDemo.Module.BusinessObjects --> Apples

 3.3)找到Apples_ListVIew视图,更改列表页面布局(Apples_ListVIew-->Columns )

原先默认布局

  更改列表布局

 3.4)找到Apples_DetailVIew视图,更改详情页面布局(Apples_DetailVIew-->Layouts)

原先默认布局

 更改详情布局

 3.5)找到Apples_LookupListVIew视图,更改列表页面布局(Apples_LookupListVIew-->Columns )

参考列表视图和详情视图设置

4)查看更改视图效果

4.1)列表视图

 4.2)详情视图

 

 

posted @ 2022-03-14 17:36  小小邪  阅读(360)  评论(0编辑  收藏  举报