亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一頁一頁地傳遞數據

一頁一頁地傳遞數據

哆啦的時光機 2019-10-29 10:58:51
我正在尋找有關如何在頁面之間傳遞數據的最佳實踐。在頁面AI中,有一個按鈕可以觸發頁面B。在頁面BI中,有6個文本框,允許用戶輸入信息。完成用戶操作后,單擊按鈕將其帶回到頁面A。我想將該數據傳遞回A頁。我看到了以下建議:構建XML文檔并保存到隔離存儲使用App類將信息存儲在屬性中像查詢字符串一樣傳遞它我正在尋找最佳實踐。是Microsoft推薦的一種還是公認的最佳方法?謝謝
查看完整描述

3 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

PhoneApplicationService.Current.State["yourparam"] = param

NavigationService.Navigate(new Uri("/view/Page.xaml", UriKind.Relative));

然后在其他頁面中


var k = PhoneApplicationService.Current.State["yourparam"];


查看完整回答
反對 回復 2019-10-29
?
MM們

TA貢獻1886條經驗 獲得超2個贊

您可以考慮的一件事是使用MVC:讓您的App作為控制器,將所有數據存儲在模型中,頁面只是包含純UI邏輯的視圖。在這種情況下,您的頁面是畫家,并且您將模型對象傳遞給周圍。這樣可以很好地隔離業務邏輯和UI,以便您輕松進行修訂。

BTW,Silverlight和XAML是MVC的出色工具,因此自然而然。


查看完整回答
反對 回復 2019-10-29
?
明月笑刀無情

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上使用“應用程序狀態字典” ...它輕巧,易于使用,并且能夠承受墓碑攻擊。只要確保您的密鑰是唯一的就可以了。


查看完整回答
反對 回復 2019-10-29
  • 3 回答
  • 0 關注
  • 572 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號