簡體   English   中英

Xamarin Forms - 使用 ViewModel 保存和檢索 Prism 導航堆棧

[英]Xamarin Forms - Save and Retrieve Prism Navigation Stack with ViewModels

我正在使用 Prism for Navigation 實現 Xamarin Forms Mobile 應用程序。

有沒有辦法從 Prism 中檢索完整的導航堆棧和視圖模型?

要求是,如果用戶處於工作流的中間並且應用程序已關閉,則用戶應該能夠在新會話開始時繼續工作流。

所以我試圖定期將整個導航堆棧保存到數據庫中。

Prism沒有它維護的單獨的 NavigationStack。 相反,它使用內置的 Xamarin.Forms 導航堆棧。 如果您需要查看實際的導航堆棧,則可以從頁面的代碼隱藏中進行。 如果您只需要獲取當前頁面的當前 uri 路徑,則可以使用GetNavigationUriPath方法。

public static string GetNavigationUriPath(this INavigationService navigationService)
   {
        var currentpage = ((IPageAware)navigationService).Page;

        Stack<string> stack = new Stack<string>();
        currentpage = ProcessCurrentPageNavigationPath(currentpage, stack);
        ProcessNavigationPath(currentpage, stack);

        StringBuilder sb = new StringBuilder();
        while (stack.Count > 0)
        {
            sb.Append($"/{stack.Pop()}");
        }
        return sb.ToString();
    }

https://github.com/PrismLibrary/Prism/blob/master/Source/Xamarin/Prism.Forms/Navigation/INavigationServiceExtensions.cs

您現在可以通過調用 INavigationService.GetNavigationUriPath 來獲取頁面的絕對導航路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM