Control add-ins let you add custom user interface (UI) controls to pages in the Microsoft Dynamics NAV Windows client. By using the basic control add-in definition interfaces, a control add-in is bound to a page only through the field that is applied with the control add-in. It is also bound to the page through the SourceExpr Property, the OnControlAddin Trigger, and other triggers for exposed events. To extend UI controls on a page, you can expose methods and properties in a control add-in assembly so that they can be called by C/AL code on most page triggers.
Exposing Methods and Properties
To expose a public method or property in a control add-in, you add the method or property to the control add-in class and mark it by using the managed attribute Microsoft.Dynamics.Framework.UI.Extensibility.ApplicationVisibleAttribute in control add-in class.
The following code example is from a control add-in class that exposes a simple method and property.
C# | Copy Code |
---|---|
[ControlAddInExport("MyControlAddIn")] public class MyControlAddIn : WinFormsControlAddInBase, ... { ... //Exposes a method [ApplicationVisible] public string Add(int param1, int param2) { return FormatNumber(param1 + param2, this.Notation); } //Exposes a property [ApplicationVisible] public Notation Notation { get { return this.notation; } set { this.notation = value; } } |
Calling Methods and Properties in the Control Add-in From C/AL Triggers
Exposed methods and properties in a control add-in can be invoked from C/AL code on page triggers. The invoking mechanism resembles other .NET Framework types with the .NET Framework interoperability except that you can call the control add-in methods and properties using C/AL without defining a variable.
To call a method in C/AL code on a page trigger, use the following code.
C# | Copy Code |
---|---|
CurrPage.ControlName.MyMethod(parameter) |
To call a property in C/AL code, use the following code.
C# | Copy Code |
---|---|
CurrPage.ControlName.MyProperty |
ControlName
is the name of the field control that is applied with the control add-in. The name is specified by the Name Property. MyMethod
and MyProperty
are the names of method and property of the control add-in to be invoked.
Triggers That Are Not Supported
You cannot invoke control add-in methods and properties from the following triggers because the triggers are invoked before the page is instantiated: