WP7 Page基類的使用以及任意類型的參數的封裝

很多時候我們想統一給所有頁面加入統一的代碼(比如通過一個開關,控制所有頁面跳轉的動畫,比如通過一個入口,設置所有頁面的顏色等等)。

所以,這時讓所有頁面繼承同一個Page基類是一個好辦法,我們可以複用任何可以複用的代碼。

好,現在我們來實現這一基類。給它起名叫SuperPage,

namespace PageNavTest
{ 
public class SuperPage:PhoneApplicationPage
    {
    }
}


在這裏我不得不感謝一直支持我的滷麪網版主,是他讓我提起興趣寫了這麼一篇文章,再次感謝滷麪網,一個非常不錯的wp7開發論壇,後面我也將再次向大家發佈幾篇高質量文章,請大家到滷麪上找我吧,呵呵

進入正題:

在mainpage.xaml中,我們有二處要改動

<local:SuperPage 
     xmlns:local="clr-namespace:PageNavTest" 
    x:Class="PageNavTest.MainPage"


</local:SuperPage>

在mainpage.cs中,我們也要改動一處

 public partial class MainPage : SuperPage

  好了,這次Mainpage,就繼承SuperPage了,同理你可以改page1.xaml,page2.xaml,page3.xaml, 當這些頁面有共同邏輯時,只用在Basepage中改動而不用分別改其它類。

下面我再來介紹一種頁面跳轉傳任意參數的方法:

大家可能都知道,一種實現方式就是使用一個全局變量,把參數保存到全局變量中,這種方法不錯,不過我可能會用另一種辦法,可能寫得有點麻煩,大家不要見笑。我下面會結合Superpage,把頁面任意跳轉封裝得更方便使用。

最終大家將可能這樣進行任意參數的傳入

           TestInfo newInfo=new TestInfo();
            newInfo.name="put an arguemnet of TestInfo: 123435";
            object[] args=new object[1];
            args[0]=newInfo;
            OpenPage("/Page1.xaml", args);//傳參,跳轉頁面


而在被跳轉的頁面,也將會非常簡單的使用傳入的參數

 
  protected override void OnPageIn(object[] obj)
        {
            TestInfo info = obj[0] as TestInfo;
            test.Text = info.name;
        }



我希望你能喜歡我的文章!如果你有更多想法,請到滷麪網 wp7開發論壇(codewp7.com)問答區聯繫我,我會很高興知道你在想什麼。同時wp7交流QQ羣172765887中,也能找到我的身影,感謝大家

源碼請猛擊


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章