EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

在代码中访问应用程序模型

应用程序模型代表着一个庞大的数据存储。它用于生成UI并配置应用程序的行为。本主题描述如何使用代码访问和定制应用程序模型。

您可以使用以下对象访问代码中的应用程序模型:

目的 财产
看法 视图模型
行动库 动作库模型
属性编辑器 PropertyEditor.Model
Xaf应用程序 XafApplication.Model

这些属性返回IModelNode的后代对象。该对象提供对相应的“应用程序模型”节点及其属性的访问。对象的“应用程序”属性表示根应用程序模型的“应用程序”节点。有关更多信息,请参考“应用程序模型结构”主题。

应用程序模型和控件的更改

UI不会立即反映在应用程序模型中所做的更改。在创建和加载用于显示目标UI元素的控件之前,您应该自定义应用程序模型。如果在创建UI控件并使用默认设置对其进行初始化后自定义UI元素,请直接访问该控件。有关更多信息,请参考Access编辑器设置Access网格控件属性主题。您还可以按照“如何:立即将应用程序模型更改应用于当前视图”主题中的描述,使用最新的应用程序模型更改来重新创建控件。

添加和删​​除现有节点

调用父节点的IModelNode.AddNode <NodeType>方法来添加节点,并调用其IModelNode.Remove方法来删除该节点。以下代码片段演示了如何使用这些方法。MyViewController公开的CreateMyViewNode操作将创建MyClass_ListView_Custom视图节点。该DeleteMyViewNode动作搜索应用程序模型的MyClass_ListView_Custom View节点并将其删除。

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Actions;
using DevExpress.ExpressApp.Model;
using DevExpress.Persistent.Base;
//...
public class MyViewController : ViewController {
    public MyViewController() {
        SimpleAction createMyViewNodeyViewNode = new SimpleAction(this, "CreateMyViewNode", PredefinedCategory.Edit);
        createMyViewNodeyViewNode.Execute  = createMyViewNodeyViewNode_Execute;
        SimpleAction deleteMyViewNode = new SimpleAction(this, "DeleteMyViewNode", PredefinedCategory.Edit);
        deleteMyViewNode.Execute  = deleteMyViewNode_Execute;
    }
    void createMyViewNodeyViewNode_Execute(object sender, SimpleActionExecuteEventArgs e) {
        IModelListView myViewNode = 
            View.Model.Application.Views.AddNode<IModelListView>("MyClass_ListView_Custom");
        myViewNode.ModelClass = View.Model.Application.BOModel.GetClass(typeof(MyClass));
    }
    void deleteMyViewNode_Execute(object sender, SimpleActionExecuteEventArgs e) {
        IModelView myViewNode = View.Model.Application.Views["MyClass_ListView_Custom"];
        if (myViewNode != null)
            myViewNode.Remove();
    }
}
提示

上面的代码示例在应用程序模型的顶层(最终用户定制层)进行了更改。使用“在代码中扩展和定制应用程序模型”主题中的方法来定制基础零层。

相关文章

转载保留此链接,注明出处