我遇到使用INavigationAware代碼的問題。我有3頁。例如,我將它命名爲pageA,pageB和pageC。網頁A是一個列表視圖,我將使用OnItemSelected如何使用INavigationAware將參數傳遞給上一頁返回按鈕
網頁A視圖模型
public void OnItemSelected(Complaint item)
{
if (item != null)
{
var param = new NavigationParameters();
param.Add("id", item.Id);
mNavigationService.NavigateAsync("pageB", param);
}
}
在頁面B的參數傳遞到頁面B,我會使用的OnNavigatedTo獲取參數。
網頁B視圖模型
public async void OnNavigatedTo(NavigationParameters parameters)
{
var id = parameters["id"];
Title = string.Format("{0}: {1}", Strings.ComplaintDetail_Title, id);
await getComplaintDetail(Convert.ToInt32(id));
}
從頁面B,我會用同樣的方式將參數發送到pageC。但現在,我將參數傳遞迴pageB存在問題。由於我在左上方使用INavigation Back按鈕,因此我不知道如何將參數傳遞迴pageB。問題是我需要將參數(主鍵)傳遞給所有頁面以供選擇和更新。請幫幫我。我不知道如何使用OnNavigatedFrom傳遞參數。
PageC視圖模型
public void OnNavigatedFrom(NavigationParameters parameters)
{
}
預先感謝您。
您是否考慮過使用某項服務?如果所有頁面都必須知道當前項目,那麼「全局」提供它可能是將它全部傳遞的替代方案。 – Haukinger
如何讓它成爲全球?對不起,我完全是一個新手。 – nuyuljana
通過所有視圖模型提供的服務 – Haukinger