3 回答

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

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

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