Xamarin.forms Displayalert和UserDialogs未显示在UI中(Viewmodel)

Xamarin.forms Displayalert和UserDialogs未显示在UI中(Viewmodel),xamarin.forms,Xamarin.forms,在我的viewmdodel类中,我从构造函数调用一个函数。在该函数中,我使用Userdialoges和displayalert属性。但这两个都没有显示在UI中。两者都有例外 Displayalert异常: 异常:>System.NullReferenceException:对象引用未设置为 对象的实例 用户对话框异常: 异常:>System.ArgumentException:在android中,您必须调用 第一个活动中的UserDialogs.Init(活动)或 UserDialogs.Ini

在我的viewmdodel类中,我从构造函数调用一个函数。在该函数中,我使用Userdialoges和displayalert属性。但这两个都没有显示在UI中。两者都有例外

Displayalert异常:

异常:>System.NullReferenceException:对象引用未设置为 对象的实例

用户对话框异常:

异常:>System.ArgumentException:在android中,您必须调用 第一个活动中的UserDialogs.Init(活动)或 UserDialogs.Init(应用程序)或提供 factory函数通过获取当前顶级活动 UserDialogs.Init(()=>supply top活动)

我还实现了下拉刷新选项。下拉时,我调用的是同一个函数,但该调用不是来自构造函数。因此,当下拉用户对话框和显示警报工作时

我的代码:

  UserDialogs.Instance.ShowLoading("Loading"); 
  await Application.Current.MainPage.DisplayAlert("Alert", "No Internet Connection", "Ok");

那么,在从构造函数调用函数时,如何激活UserDialogs和displayalert呢?

通过在构造函数和onappearing()中注释函数调用来解决,使用viewmodel类对象(添加在xaml.cs文件中而不是在viewmodel中)调用相同的函数

  protected override async void OnAppearing()
       {
        dbvm.UserList(); //dbvm is viewmodel class object
       }