2015-12-09 35 views
1

我想在發生未處理錯誤時在Xamarin.Forms項目中顯示AlertDialog(DisplayAlert)。 但我不知道如何使用Xamarin API獲取當前頁面實例。 另外我不知道我應該選擇什麼關鍵字來搜索谷歌搜索解決方案 。如何在Xamarin.Forms中獲取當前頁面/視圖或最頂層頁面/視圖

+0

我在用的另一種方式來實現顯示來自「無處不在」的alertDialog。你需要用當前頁面/視圖來完成嗎?或者只是做得好就夠了嗎? – dsnunez

+0

請停止關閉和投票其完全有效的xf問題 –

+0

是的,我想顯示來自世界各地的alertDialog。 @dsnunez – wplong11

回答

5

你需要保持你的主網頁的引用,你所提到的。有幾種方法可以做到這一點。

  1. 你可以在你的App.cs文件的靜態引用它,這實際上已經存在,因爲它從具有應用繼承:

    App.Current.MainPage

  2. 如果你使用像MVVMLight這樣的MVVM幫助器,將頁面傳遞給服務器,以便保持對它的引用。

  3. ACR UserDialogs是一個對話框包,也可以幫助,因爲它延伸,並增加了不同類型的對話框

+0

我在自己的應用程序中使用了類似於您的解決方案n°1的內容。當我第一次實現它時,我記得在我嘗試顯示AlertDialog時,在某些外部執行路徑中,我收到一個異常(對不起,不記得它是哪一個,但是它像NullReference或InvalidOperation)。我通過將我的調用包裝爲AlertDialog來解決它: Device.BeginInvokeOnMainThread(async()=> { }等待MainPage.DisplayAlert(「title」,「message」,「OK」); }); – dsnunez

1

爲了解決這個問題並具有更多靈活性,可以在每個平臺的項目中添加「ACR用戶對話框」包。

然後你可以使用在任何地方:

await UserDialogs.Instance.AlertAsync ("Your question has been successfully sent", "Thankyou"); 
相關問題