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中,也能找到我的身影,感谢大家

源码请猛击





posted on 2012-03-05 23:24  yewenpeng  阅读(1749)  评论(0编辑  收藏  举报