Displayalert和userdialoges未在UI中显示(Viewmodel)

时间:2017-12-18 09:45:28

标签: xamarin.forms

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

Displayalert异常:

  

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

UserDialogs异常:

  

异常:> System.ArgumentException:在android中,你必须调用   来自您的第一个活动OR的UserDialogs.Init(Activity)   UserDialogs.Init(App)来自您的自定义应用程序或提供   工厂功能通过获得当前的顶级活动   UserDialogs.Init(()=>提供顶级活动)

我还实现了下拉刷新选项。下拉时我调用相同的函数,但该调用不是来自构造函数。因此,当下拉UserDialoges和Displayalert正在工作时。

我的代码:

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

那么如何在构造函数中调用函数时最初激活userdialoges和displayalert?

1 个答案:

答案 0 :(得分:1)

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

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