3 回答

TA貢獻1824條經驗 獲得超8個贊
PhoneApplicationService.Current.State["yourparam"] = param
NavigationService.Navigate(new Uri("/view/Page.xaml", UriKind.Relative));
然后在其他頁面中
var k = PhoneApplicationService.Current.State["yourparam"];

TA貢獻1886條經驗 獲得超2個贊
您可以考慮的一件事是使用MVC:讓您的App作為控制器,將所有數據存儲在模型中,頁面只是包含純UI邏輯的視圖。在這種情況下,您的頁面是畫家,并且您將模型對象傳遞給周圍。這樣可以很好地隔離業務邏輯和UI,以便您輕松進行修訂。
BTW,Silverlight和XAML是MVC的出色工具,因此自然而然。

TA貢獻1828條經驗 獲得超4個贊
這里有兩件事在起作用。首先,如果/當用戶使用“后退”按鈕而不是您的按鈕返回到頁面A時,是否交換了文本框中的信息(“后退=取消”還是“后退= OK”?)
就是說,如果您使用的是NavigationService.GoBack(而不應該使用NavigationService.Navigate,因為如果使用的是Navigate調用,則反復按下back鍵會對用戶造成各種不良的UX),然后是QueryStrings不是一個選擇。由于在WP7 Silverlight導航系統中頁面實際上無法相互引用,因此您需要使用第三方來保存數據。為此,您可以求助于(a)隔離存儲(緩慢且繁重,但具有故障保護功能),(b)使用PhoneApplicationService.State字典,或(c)使用某種與應用程序無關的全局屬性對象,或使用“靜態/單項” ...
請記住在執行此操作時要注意Tombstoning行為-在以下情況下,頁面將處理OnNavigatedTo方法:(a)在應用程序中導航到它(b)在B頁面上完成工作時導航回它,或者(c)您可以從該頁面上刪除應用程序,然后使用Back鍵返回到您的應用程序。
抱歉,我在這里沒有給出更直接的答案-很大程度上取決于您的具體情況。在最一般的情況下,我會強烈考慮在PhoneApplicationService上使用“應用程序狀態字典” ...它輕巧,易于使用,并且能夠承受墓碑攻擊。只要確保您的密鑰是唯一的就可以了。
- 3 回答
- 0 關注
- 572 瀏覽
添加回答
舉報