public VwPreviewEquation(VmPreviewEquation vmPreviewEquation)
        {
            try
            {
                // ----------------
                _vmPreviewEquation = vmPreviewEquation;

                this.BindingContext = vmPreviewEquation;

                vmPreviewEquation.MaxVarLengthChanged += OnMaxVarLengthChanged;
                vmPreviewEquation.CalculationFinished += OnCalculationFinished;

                // ----------------
                SetColWidths();

                // ----------------
                InitializeComponent();

                // ----------------
                // If we are using XAML compilation, then DisplayBinding must be set in code due to a bug. See: https://www.syncfusion.com/forums/130637/cannot-set-displaybinding-on-column-from-xaml
                //previewGrid.Columns[1].DisplayBinding = new Binding() { Path = "Value", Converter = new NumericConverter() };
            }
            catch (Exception ex)
            {
                Logging.LogException(ex);
                throw;
            }
        }
        // -----------------------------
        public void PreviewEquation(ContentManager contentManager, EqnCalc equationCalc, Action okAction, Action cancelAction)
        {
            VmPreviewEquation vm = new VmPreviewEquation(contentManager, equationCalc, okAction, cancelAction);
            VwPreviewEquation vw = new VwPreviewEquation(vm);

            Navigation.PushModalAsync(vw);
            //await vw.PageClosedTask; // Wait here until the Page is dismissed
            //Navigation.PushAsync(vw);

            return;
        }