一千萬個為什麽

搜索

Windows Phone 7,MVVM,Silverlight和導航最佳實踐/模式和策略

同時構建Windows Phone 7應用程序。使用MVVM模式我們一直在努力掌握一種模式或技術,以集中適合MVVM的導航邏輯。

舉個例子,每次應用程序。調用我們的Web服務,我們檢查我們已分配應用程序的登錄令牌。早些時候尚未過期。我們總是從Web服務返回一些狀態到手機,其中一個可能是Enum.AuthenticationExpired。

如果我們收到,我想我們會提醒用戶並導航回登錄屏幕。 (這是我們可能收到的許多狀態示例之一)

現在,想要保持幹燥,這種邏輯感覺應該在一個地方。這就是我的問題。

我應該如何進行建模依賴於(基本上)switch或if語句的導航,以告訴我們在哪裏導航到next而不在每個視圖中重復。

是否有人可以推薦的公認模式或技術?

謝謝

最佳答案

聽起來你有一個“狀態”(你可以打開的東西),然後是一個動作(你可以導航到)。有很多方法可以處理它。一種方法是創建一個暴露NavigateTo(something)方法的INavigationService,其中某些東西封裝了當前狀態,該方法返回下一個狀態。也許該方法也會執行頁面交換本身。

另一種方法可能是創建一個驅動頁面的IEnumerable,這在前進的應用程序中是有意義的,但在你試圖管理後退按鈕時會有點模糊。

使用INavigate,您可以推送和彈出頁面(入隊/出隊),然後登錄將被推到堆棧頂部並執行其操作,然後彈出頁面返回。

轉載註明原文: Windows Phone 7,MVVM,Silverlight和導航最佳實踐/模式和策略