2013-04-03 98 views
1

在WP應用程序中,我有樹狀列表,用戶可以在其中看到類別和項目。WP樹狀列表導航

如果用戶單擊項目 - >我將導航到項目頁面。但如果用戶想要更深入點擊類別 - >我需要向他展示內部類別和項目,所以它會很棒,如果能夠再次打開此頁面的實例並顯示內部類別和項目,因爲它有絕對相同的邏輯

據我所知,我無法運行一個Page的多個實例。

我可以顯示與只是改變列表框的內容本頁面當前實例內部類,但這樣一來我有2個問題:

  1. 在後退按鈕按下我需要顯示以前的列表框,所以我需要將以前打開的所有列表框存儲爲Stack
  2. 我想爲用戶顯示頁面導航動畫(也可以按回車鍵),他會看到他在樹列表中更深入,或者他回到之前的狀態。

也許你們有些人已經做了同樣的事情,請問你能給我什麼建議嗎?

回答

1

您可以有多個相同頁面的實例。

假設每個類別都有唯一的ID,您只需導航到頁面並在查詢字符串中提供ID參數。爲最頂層的數據保留一個ID(例如0)。

因此,在分類頁面最初將這樣調用

NavigationService.Navigate("MyCategoriesPage?categoryId=0"); 

在方法的OnNavigatedTo您解析的categoryId和讀取根據ID從你的後端或存儲數據。

當用戶點擊一個類別,您導航基於類別ID到同一個頁面,例如:

NavigationService.Navigate("MyCategoriesPage?categoryId=12"); 

Windows Phone的不斷回堆棧,等等後退按鈕導航將被處理。您應該記住的唯一事情是,如果用戶停用並重新激活應用程序,該應用程序可能是墓碑式的。在這種情況下,列表框數據將不會被保留。 來處理它確保您遵循標準模式中的OnNavigatedTo方法:

if (!_isInitialized) 
{ 
    int categoryId = int.Parse(NavigationContext.QueryString["categoryId"]); 
    ReadData(categoryId); 
    _isInitialized = true; 
} 
+0

這很有趣,我心底嘗試這種在工作中,由於 –

+0

完美的作品,非常感謝你! –