async void OnCurrentPageChanged(object sender, System.EventArgs e)
        {
            if (nuova && (CurrentPage == bodyPage_ || CurrentPage == footerPage_ || CurrentPage == notePage_))
            {
                Device.BeginInvokeOnMainThread(() => {
                    CurrentPage = Children[0];
                });
            }
            if (!nuova && CurrentPage == bodyPage_)
            {
                if (last_num_ == 0 || last_num_ != doc.fat_n_doc)
                {
                    last_num_ = doc.fat_n_doc;
                    await body_.SetItemSource();
                }
            }
            if (CurrentPage == footerPage_)
            {
                if (doc.fat_editable)
                {
                    try
                    {
                        footer_.SetBusy(true);
                        await doc.RecalcAsync();
                    }
                    catch (Exception ex)
                    {
                        footer_.SetBusy(false);
                        await DisplayAlert("Errore", ex.Message, "OK");

                        Device.BeginInvokeOnMainThread(() =>
                        {
                            CurrentPage = Children[0];
                        });
                    }
                    footer_.SetBusy(false);
                }
                footer_.SetProtection();
                footer_.SetField();
            }
            if (CurrentPage == notePage_)
            {
                note_.SetProtection();
                note_.SetField();
            }
        }