The purpose of an embedded canvas app in a model-driven form is to have a low code/no code solution to custom UI components in model-driven forms instead of building something completely custom with HTML or PCF. To have a seamless experience for end-users, the embedded canvas apps should be styled the same as model-driven forms and leverage the same events (e.g. refresh, save) and actions (ribbon aka command bar) as the model-driven form.
Problem or Feature Request
ModelDrivenFormIntegration provides a lot of useful methods to reference the model driven form context and OnDataRefresh event, but the most basic event is missing, the save event. The model-driven form Save event does not save the canvas apps data event even on OnDataRefresh, and the only workaround approach is to manage the save within the embedded canvas app individually and introduce another save button. From an user experience(UX) standpoint, it makes little sense to have two Save buttons and user needing to click “Save” twice; once for the data entered in the canvas app and one for the model-driven form. Users get confused which save does what and why there are two saves, users forget to click save on the embedded canvas apps, and therefore loses changes. Having another Save or other action within the embedded app fails to serve the purpose of embedding the canvas app!
Please have the ability to register to the model-driven form save event and have a OnDataSave action property in the ModelDrivenFormIntegration!