2017-12-18 7 views
0

내 viewmdodel 클래스에서 생성자에서 함수를 호출합니다. 이 함수의 내부에서 Userdialoges 및 displayalert 속성을 사용하고 있습니다. 하지만 둘 다 UI에 표시되지 않습니다. 둘 다 예외 처리하기.UI (Viewmodel)에 표시 및 사용자 대화 상자가 표시되지 않습니다.

Displayalert 예외 :

예외 :> System.NullReferenceException : 개체 참조 개체의 인스턴스로 설정되지.

UserDialogs 예외 :

예외 :> System.ArgumentException : 안드로이드, 당신은 당신의 정의에서 첫 번째 활동 또는 UserDialogs.Init (앱)에서 UserDialogs.Init을 (활동)를 호출해야합니다 애플리케이션 또는 UserDialogs.Init (() => 상단 활성 장치)는 I 번째 구현

통해 현재 활성 가기를 얻으려면 공장 기능을 제공 e 새로 고침 옵션으로 당깁니다. 아래로 당길 때 같은 함수를 호출하지만 그 호출은 생성자가 아닙니다. 그래서 UserDialoges와 Displayalert를 끌어 올 때 작동합니다.

내 코드 : 생성자에서 함수를 호출 할 때

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

그래서 어떻게 처음 userdialoges 및 displayalert을 활성화 할 수 있습니다?

답변

0

constructor의 함수 호출과 onappearing()의 내부에서 viewmodel 클래스 객체 (viewmodel이 아닌 xaml.cs 파일에 추가됨)를 사용하여 동일한 함수를 호출합니다.

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