免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
頁面導航與參數傳遞

在學習過程中,大致的總結一些頁面導航與參數傳遞的知識。

通常我們的應用程序是由多個應用頁面構成的,于是就有一個十分重要的行為——頁面間的切換。在這里成為頁面間的導航。我們需要注意的問題是:怎么實現切換和怎么傳遞參數。
我們要了解的信息是:

我們創(chuàng)建一個項目,叫做“NavigationPractice”,添加一個頁面叫做“MyPage.xaml”,這是主頁面MainPage需要導航到的頁面。

四種頁面切換的方式 

使用HyperlinkButton來實現

這也是HyperlinkButton的一個重要的應用方式,通過指定HyperlinkButton的NavigateUri屬性,實現導航,具體實現:

 

在代碼中進行導航

通過頁面的NavigationService來實現,NavigationService在這里是頁面PhoneApplicationPage的一個屬性,取主機用于導航到此頁的服務,實際是返回一個NavigationService類型的值,相當于是實例化一個NavigationService的對象。同理,用于接收參數的NavigationContext也是PhoneApplicationPage的一個屬性,獲取包含有關導航請求的信息的對象,實際上是返回一個NavigationContext類型的屬性值,相當于是創(chuàng)建了一 個NavigationContext 的實例。

具體實現:定義一個按鈕,給按鈕添加Click事件,以實現導航。

 

返回操作

就是當在一個頁面中操作完成后,返回到前一個頁面中進行操作。

方法一:

使用代碼:NavigationService.GoBack()。

方法二:

使用返回鍵實現返回操作。

補充:禁用返回按鍵的返回操作。給當前頁面添加BackKeyPress事件,使用e.Cancel=true;的方式來禁用返回按鍵。

 

別名導骯

即定義系統資源,使用別名來實現導航。WP7頁面導航可以使用路徑別名,是從Silverlight繼承來的。使用的方法涉及到資源的定義。方法如下:
首先,在App.xaml的文件中添加Windows.Navigation 命名空間:mlns:navigate="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"。
其次,書寫資源代碼:

最后,給Frame添加UriMapper :this.RootFrame.UriMapper = Resources["UriMapper"] as UriMapper;即將這句代碼寫到App類的構造函數中。

在使用的時候,就像之前的應用一般,只是在路徑名中直接書寫路徑別名就行了。

 

 

五種頁面間參數傳遞的方法

直接在Uri中添加

或:

 

使用路徑別名中傳遞參數

在資源的定義中,我們可以定義這樣的資源:

這樣通過定義之后,在使用的時候new Uri("NewPage/10", UriKind.Relative));就行了,在實際使用中,如果我們在定義資源Uri的時候,使用的名稱和將要轉到的頁面的名稱一致的話,會出現以下三種效果功能相同的使用方式:

/NewPage.xaml?ID=10

NewPage?ID=10

NewPage/ID=10

對于以上兩種傳遞參數的方式,在接受的時候,使用NavigationContext。具體方法:

為了很好的使用參數,避免異常等情況發(fā)生,在獲取數據的時候最好先判斷參數是不是存在。

 

配合獨立存儲傳遞參數

在導航的時候,配合獨立存儲,將需要傳遞的參數保存在獨立存儲中,由于一般傳遞的參數不會很大,筆者覺得使用IsolatedStorageSetting就行了。如在傳遞的時候:

而在接受的時候:

這樣也算是很方便的實現了數據的傳遞。

 

PhoneApplicationService傳遞參數

這個類提供對應用程序生存期各個方面的訪問。這包括對應用程序空閑行為的管理以及當應用程序變?yōu)榛顒踊虿换顒訒r對應用程序狀態(tài)的管理。在這里主要是用到了它的state屬性,獲取用于調用之間傳遞應用程序狀態(tài)的詞典,用來存儲數據。方法:

在將要跳轉的頁面中重寫方法OnNavigatedFrom,將需要傳遞的參數保存在State中:

在將要跳轉到的頁面中重寫方法OnNavigatedTo,從State中讀取字典數據:

 

共享數據傳遞參數

 

另一種常用的頁面間共享數據的方法是使用公共資源App.xaml。在其后臺代碼中加入相應屬性,即可使用。這種方法最經常用來傳遞對象,可以采用的辦法是創(chuàng)建兩個頁面都可以訪問到的靜態(tài)對象。
具體實現:
public string Name{set;get;}
public string Number{set;get;}
在使用的時候:
(Application.Current as App).Name
(Application.Current as App).Number

如定義屬性MyName,把需要傳遞的參數保存在共享數據中:

取得數據:

 

以上的各種方法,在我們的項目中最這樣的布局,其實就是簡單地實現:

實現結果為:

項目地址:http://files.cnblogs.com/waitingsky/NavigationPractice.rar

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Silverlight Navigation(多頁面導航、傳值) 之 二
JSF中請求過程的生命周期
iOS如何實現從一個navigation的子頁面跳轉到另一個navigation的子頁面
silverlight頁面間跳轉
Breadcrumbs Navigation
EBSOAF開發(fā)中如何在OAF頁面調用form并傳遞參數給form
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服