如何在运行时覆盖 FormControl 方法?

How to override FormControl method at RunTime?

我正在尝试在 Dynamics AX 2009 中制作某种验证框架。 我需要在运行时重写一些 FormControl 方法。

例如这是 MyValidationTool class:

void applyValidation(FormControl _control)
{
    _control.overideMethod("modified", this.validate());
}

所以我可以像这样在任何表单对象中使用它:

void init()
{
    MyValidationTool validationTool = new MyValidationTool();
    ;

    validationTool.applyValidation(userNameStringEdit);
}

也许我完全错了我想要的。 但我仍然会很感激关于如何使用 X++ 以编程方式覆盖方法的答案。

看看教程表格tutorial_Form_AddControl
简而言之,您要做的是以 controlName_methodToOverride 的形式创建方法,例如myTxt_validate.
如果您不想直接在窗体上而是在单独的对象上覆盖运行时控件的方法,请查看窗体的方法 controlMethodOverloadObject - 使用该方法,您可以指定窗体 [= 的方法所在的对象17=] 将在可能的情况下被调用。