EPR类企业管理系统

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


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:当当前视图具有未保存的更改时禁用操作

本主题演示更改加载到当前对象空间的业务对象时如何禁用操作。为此,将处理IObjectSpace.ModifiedChanged事件,并根据IObjectSpace.IsModified属性设置ActionBase.Enabled属性。

注意

移动平台不支持本主题中描述的方法。如果有必要在您的Mobile应用程序中实现此方案,请使用支持中心与我们联系。

public class ViewController1 : ViewController {
    SimpleAction action1;
    public ViewController1() {
        action1 = new SimpleAction(this, "Action1", DevExpress.Persistent.Base.PredefinedCategory.View);
    }
    protected override void OnActivated() {
        base.OnActivated();
        ObjectSpace.ModifiedChanged  = ObjectSpace_ModifiedChanged;
        UpdateActionState();
    }
    void ObjectSpace_ModifiedChanged(object sender, EventArgs e) {
        UpdateActionState();
    }
    protected virtual void UpdateActionState() {
        action1.Enabled["ObjectSpaceIsModified"] = !ObjectSpace.IsModified;
    }
    protected override void OnDeactivated() {
        base.OnDeactivated();
        ObjectSpace.ModifiedChanged -= ObjectSpace_ModifiedChanged;
    }
}

结果,当当前视图中有未保存的更改时,Action1在UI中显示为灰色。除非将更改保存到数据存储中(例如,使用“保存操作”),否则无法执行操作。保存更改后,Action1将恢复为正常状态。

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