成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows Phone開發(17):URI映射

移動開發
別高興著,主角還出場呢,今天我們講的URI映射,所以下面我們要用URI映射的方式來完美解決這問題。用URI映射難嗎?不難,很簡單,我們用到兩個類:UriMapper和UriMapping。

前面在講述導航的知識,也講了控件,也講了資源,樣式,模板,相信大家對UI部分的內容應該有了很直觀的認識了。那么今天講什么呢?不知道大家在練習導航的時候是否發現一個問題?

當我們向頁面傳遞一個參數的時候,是沒問題的,但是,如果我們在XAML中使用這樣的URI時,你敢保證它還能正常運行呢?

    /PageaTest.xaml?name=小強&age=100

 

你發現,嘿,咋回事了?怎么報錯了?不知道有沒有去思考,為什么呢?

 

好,先問你一句,你學過Web開發嗎?或者說,了解HTML嗎?如果你了解,好,你已經找到答案了。

 

哈哈,對了,就是編碼和轉義的問題,“&”符號用在XAML中同樣需要轉義,但你一定發現了,如果把它換成轉義符,一來好像很難看,二來,也不太安全。大家知道,MVC中是使用什么來訪問頁面的?是的,能過控制器的行為,而且是經過URI映射的。

同理,在Silverlight的導航中,也同樣需要的,在WP中依然適用。

 

先說一下不使用URI映射的情況下如何解決該問題。

對的,就是改用C#代碼來導航,這樣就可以避開了XAML轉義了。

  1. private void button1_Click(object sender, RoutedEventArgs e) 
  2.     NavigationService.Navigate(new Uri("/pageRec.xaml?a=你好&b=小家伙", UriKind.Relative)); 

看看效果吧,怎么樣,解決了嗎?

別高興著,主角還出場呢,今天我們講的URI映射,所以下面我們要用URI映射的方式來完美解決這問題。

 

用URI映射難嗎?不難,很簡單,我們用到兩個類:

1、UriMapper ,它用來管理映射的集合,它是頭目分子來的,很重要的哦,它下面可以有成千上萬的蝦兵蟹將。

2、UriMapping,這些家伙是跟著UriMapper老大混飯吃的。

 

也就是說,一個UriMapper里面可以包含1到N個UriMapping不等,一位老大可以帶領若干個馬仔,“兄弟上陣一群狼”就是這個道理。

 

可能由于各種原因,你的超級應用程序會有N多種映射方案,所以說允許N個UriMapping,你知道一支樂隊不可能個個都拉小提琴的,顯然需要其它樂器的配合。

 

好的,那么,URI是如何映射的?相信玩過C#的朋友,一定會熟悉這種語句:

     string ss = string.Format("你的人品值是:{0}", -100);

上面的{0}是占位符,01234依次往下推,上面原理相信大家都懂,首先在“你的人品值是:{0}”中找到“{0}”,然后用-100為替換{0},所以上面的字符串變為:你的人品值是:-100.

 

URI映射的原理是一樣的,比如:

   /Student/{id}    ---->     /studentdetail.xaml?sid={id}

大家猜到上面的URI是怎么映射的嗎?

看左邊,其它是多余,是“偽”兵,用來迷惑敵人的,真正的數據是{id},而箭頭右邊就是真正的URI地址,它也有一個{id},對,它在左的偽URI中找到{id},然后用它的值來替換右邊的{id}。

理解嗎?例如我傳一個URI,/Student/201201030,而最終映射后的真實地是/studentdetail.xaml?sid=201201030,哈,現在明白嗎?

 

不明白?我再舉幾個,你自己研究一下看看找到規律沒有?

   /cat/{cid}   --->   /categ.xaml?id={cid}

  /cat/5025  --->    /categ.xaml?id=5025

 

 

     /{id}/{name}    ---->    /goodslist.xaml?gid={id}&gname={name}

      /302/天地七號    ----->    /goodslist.xaml?gid=302&gname=天地七號

 

 

   /{sex}/{order}/{type}   ---->     /listmat.xaml?sex={sex}&acord={order}&swType={type}

    /女/3/7         ------>          /listmat.xaml?sex=女&acord=3&swType=7

至于為什么要用“/”,呵呵,因為這個不用轉義嘛 ,二為,為了讓運行庫可以識別占位符的位置,也可作為分隔符,一舉兩得。

怎么樣,有感覺了沒?還沒?不要緊,一起動手玩一玩就有感覺了。

第一步,打開App.xaml.cs文件,在App的構造函數中添加URI映射。

  1. #region URI映射 
  2. UriMapper mng = new UriMapper(); 
  3. UriMapping myMapping = new UriMapping() 
  4.     Uri = new Uri("/page/{p1}/{p2}", UriKind.Relative), 
  5.     MappedUri = new Uri("/pageRec.xaml?a={p1}&b={p2}", UriKind.Relative) 
  6. }; 
  7. mng.UriMappings.Add(myMapping); 
  8. this.RootFrame.UriMapper = mng; 
  9. #endregion 

然后,回到首頁,加入以代碼導航代碼。

  1. <HyperlinkButton Content="通過URI映射的導航" Height="73" HorizontalAlignment="Left" Margin="12,286 

責任編輯:閆佳明 來源: oschina
相關推薦

2013-07-30 12:37:56

Windows PhoWindows Pho

2010-04-21 17:07:54

Windows Pho

2013-04-17 14:00:06

Windows PhoWindows Pho

2011-06-07 12:42:15

Windows Pho

2013-04-16 17:02:50

Windows Pho概論

2013-04-19 16:34:56

Windows PhoWindows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho

2010-04-08 17:40:23

Windows Pho

2010-07-16 15:29:02

Windows Pho

2012-08-16 10:35:50

Windows Pho

2011-06-07 11:35:38

Windows Pho

2013-04-17 13:27:04

Windows PhoWindows Pho

2013-07-31 13:03:51

Windows PhoWindows Pho

2013-04-19 16:52:24

Windows PhoWindows Pho

2013-07-31 12:50:39

搭建Windows PWindows Pho

2013-07-31 13:13:50

Windows PhoMVVM模式

2010-12-14 18:48:49

微軟

2012-06-04 14:47:58

Windows Pho

2013-04-19 15:35:54

Windows Pho隔離存儲

2010-06-06 15:54:54

Windows Pho
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线一区二区观看 | 国产日韩欧美一区 | 欧美日韩高清一区二区三区 | 国产1区2区在线观看 | 亚洲精品成人网 | 久久久久亚洲精品 | 国产精品久久久亚洲 | 亚洲国产精品久久 | 精品91久久 | 国产精品影视在线观看 | 亚洲午夜视频在线观看 | av色站 | 国产一级电影在线观看 | 成人在线视频一区 | 欧美精品三区 | 欧美精品一区三区 | 久久av一区二区三区 | 搞黄视频免费看 | 成人在线视频观看 | 91在线网| 亚洲va欧美va天堂v国产综合 | 亚洲欧美国产精品久久 | 看av网| 97av视频在线 | 91久久精品国产 | 91精品国产一区二区三区 | 91精品国产综合久久久久久丝袜 | 精品欧美一区二区三区久久久 | 做a视频 | 国产午夜精品一区二区三区在线观看 | 色婷婷精品国产一区二区三区 | 精品美女视频在免费观看 | 久久久久国产精品 | 不卡的av电影 | 人和拘一级毛片c | 亚洲精品丝袜日韩 | 99精品视频免费观看 | 国产精品一区二区三区在线 | 精品久久中文字幕 | 国产日韩一区二区三区 | 欧美激情综合 |