0
棱鏡6中的一個很酷的功能是深度鏈接和傳遞參數。在很多情況下,您都希望使用此參數從Web服務中查找數據。理想情況下,這將使用異步/等待來獲取數據。最好的地方在哪裏呢?例如OnNavigatedTo方法是一個void。導航XamarinForms棱鏡6時加載數據的最佳位置?
棱鏡6中的一個很酷的功能是深度鏈接和傳遞參數。在很多情況下,您都希望使用此參數從Web服務中查找數據。理想情況下,這將使用異步/等待來獲取數據。最好的地方在哪裏呢?例如OnNavigatedTo方法是一個void。導航XamarinForms棱鏡6時加載數據的最佳位置?
雖然我還沒有Deep Linking的案例,但我在OnNavigatedTo的許多頁面上執行了很多負載,並且它工作的很好!
這裏有一個例子:
public void OnNavigatedTo(NavigationParameters parameters)
{
if (parameters != null &&
parameters.ContainsKey("MyKey"))
{
SomePrivateFieldInViewModel = (YourVariable)parameters["MyKey"];
//SomeWork
}
GetItems();
}
private async void GetItems()
{
try
{
SomeListInViewModel = await WebServices.GetEntity(SomePrivateFieldInViewModel);
//SomeWork
}
catch (Exception ex)
{
//SomeWork
}
}
但你不等待您的來電GetItems所以它不是真的做異步代碼。你不知道該行的編譯器有什麼警告嗎? –
沒有變暖。在運行時,OnNavigatedTo()將激發GetItems()並完成。 – danieljaguiar
(按下ENTER過早)根本沒有變暖。在運行時,OnNavigatedTo()將激發GetItems()並完成。在這一點上,GetItems()已經運行,並將繼續做它的事情,直到它完成。由於用戶已經在屏幕/頁面中,GetItems()在開始時也將isLoading設置爲true(沒有在我的回答中)。這是加載是一個具有NotifyPropertyChange布爾,所以我的視圖將顯示一個加載控件。 – danieljaguiar