很多時候我們想統一給所有頁面加入統一的代碼(比如通過一個開關,控制所有頁面跳轉的動畫,比如通過一個入口,設置所有頁面的顏色等等)。
所以,這時讓所有頁面繼承同一個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中,也能找到我的身影,感謝大家