WPF008:使用PageFunction导航不能使用带参构造和线程导航

PageFunction<T>进行导航比较符合逻辑。简单的使用如下。
例如:有两个页面,Page1和Page2
Page1:
<PageFunction x:Class="TestFounctionPage.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:sys="clr-namespace:System;assembly=mscorlib" 
      x:TypeArguments="sys:Boolean"
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
	Title="Page1">


    <Grid>
        <TextBlock Height="21" HorizontalAlignment="Left" Margin="88,132,0,0" Name="tb" Text="Page1" VerticalAlignment="Top" Width="77" />
        <Button Content="下一页" Height="23" HorizontalAlignment="Left" Margin="75,171,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</PageFunction>

 public partial class Page1 : PageFunction<Boolean>
    {
        public Page1()
        {
            InitializeComponent();
        }


        //public Page1(int test)
        //{
        //    InitializeComponent();
        //}


        private void button1_Click(object sender, RoutedEventArgs e)
        {
            GuidPage();


            //BackgroundWorker worker = new BackgroundWorker();


            //worker.DoWork += (o, p) =>
            //    {
            //        GuidPage();
            //    };


            //worker.RunWorkerCompleted += (o, p) =>
            //    {


            //    };


            //worker.RunWorkerAsync();
        }


        void Page2_Return(object sender, ReturnEventArgs<bool> e)
        {
            
        }


        void GuidPage()
        {
            Page2 page2 = new Page2();


            page2.Return += new ReturnEventHandler<bool>(Page2_Return);


            this.NavigationService.Navigate(page2);
        }
    }

Page2:
 <PageFunction x:Class="TestFounctionPage.Page2"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:sys="clr-namespace:System;assembly=mscorlib" 
      x:TypeArguments="sys:Boolean"
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
	Title="Page2">


    <Grid>
        <TextBlock Height="23" HorizontalAlignment="Left" Margin="96,118,0,0" Name="textBlock1" Text="Page2" VerticalAlignment="Top" Width="79" />
        <Button Content="返 回" Height="23" HorizontalAlignment="Left" Margin="82,174,0,0" Name="button2" VerticalAlignment="Top" Width="75" Click="button2_Click" />
    </Grid>
</PageFunction>

public partial class Page2 : PageFunction<Boolean>
    {
        public Page2()
        {
            InitializeComponent();
        }


        private void button2_Click(object sender, RoutedEventArgs e)
        {
            this.OnReturn(new ReturnEventArgs<bool>(true));
        }
    }

那么在实际使用中,Page1最好不要是带参数的构造器,如果是那么Page2就无法返回;
向Page2导航时也不能用线程,同样会造成无法返回。
因此在项目中需要注意。

测试代码如下:

http://download.csdn.net/detail/yysyangyangyangshan/5168833

更多相关文章
  • 脉脉CEO林凡分享 (来源:易网科技频道) window.NTES && function(d){var f=function(c){var b=c.getAttribute("flashvars"),a=c.getAttribute("repovide ...
  • 文章来源:天极Blog Windows Installer(windows安装服务)是一种通用的软件发布方式,现在许多软件都使用windows Installer作为自己的安装程序,有时因为各种原因以及windows Installer本身的缺陷,会导致windows Installer出错. 症状 ...
  • "国内做手机就跟打酱油一样,简单随便,没有任何技术含量,还一阵风."凤姐一针见血道破当下中国手机圈风云变幻的乱象.在中国手机产业的进化沉浮中,如果说十年前还是一幅清静淡雅的素描,现在只能用浓墨喧嚣的油彩画来形容了.从高大上,到山寨风,再到摆地摊,手机江湖俨然一幅群雄逐鹿的浮世绘, ...
  • # encoding:utf-8 import sys, os, re; if len(sys.argv)!=4: print 'Uage: '+sys.argv[0]+ ' dir oldstr newstr'; sys.exit(); dir = sys.argv[1]; oldstr = sy ...
  • main 与 iframe 相互通讯类 之前写过一篇<iframe与主框架跨域相互访问方法>,介绍了main与iframe相互通讯的原理,不了解原理的可以先看看. 今天把main与iframe相互通讯的方法封装成类,主要有两个文件, JS:FrameMessage.js 实现调用方法的接 ...
  • 出处:PConline 作者:第七乐章 最近可说是微软之日,广大网友一定都在关注Windows Vista Beta 1和Internet Explorer 7的发布动态吧!现在网上已经可以下载到Internet Explorer 7.0 Beta 1英文版[点击下载].评测:[先睹为快!IE 7B ...
一周排行
  • 百度地图 自定义结果面板+分页+图层标注(标注点+搜索) 示例一:   <html> <head> <meta http-equiv="Content-Type" c ...
  • 175.You are peer reviewing a fellow DBAs backup plan for his NOARCHIVELOG mode database, as shown here: Put ...
  • 原文:http://www.ibm.com/developerworks/cn/java/j-jtp10264/index.html 多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一 ...
  • 1.mkimage的使用(u-boot-2008.10/tools/mkimage) 首先./mkimage 运行或者 将mkimage 拷贝到 /bin 目录下面 法一: #mkimage -n 'linux-2. ...
  • 2007年3月2日,谷歌发布图书搜索简体中文试用版,高调介入中文图书搜索领域,读者可以根据图书全文中任意关键词搜索到相关图书,并可以查阅部分章节.在此之前,谷歌已与多家出版社签署合作协议.4月20日,百度也紧随老对手 ...
  • 易网科技讯  5月26日消息,据国外媒体报道,消息人士透露,美国最大团购网站Groupon正在测试一款面向商家的信用卡读卡器,将与美国移动支付公司Square 和eBay旗下贝宝(PayPal)提供的同类设备进行竞争 ...
  • 最近开发几个项目,牵涉到android的几种开发模式.对于原生态开发.web 应用开发以及混合模式开发,本人认为并不是哪一种就是最好的,哪一种就是最差的,这个完全是根据自己的需求,选择一种合适的开发模式.他们同时具备 ...
  • 如果*p被()包住,说明指针变量p将来指向的是函数 //声明一个指针变量 //int (*p)(int, int) = sum; int (*p)(int, int); p = sum; // 如果*p被()包住,说 ...
  • 天天酷跑时空胶囊机甲怎么用_天天酷跑时空胶囊机甲使用方法介绍.使用时空胶囊时,我们可以看到时空胶囊外连着一条虚线指针,指针指向的是一个虚线时空胶囊 天天酷跑最新上线的新机甲时空胶囊,它拥有着瞬间移动的技能,然而很多玩 ...
  • 上一篇:Android菜鸟的成长笔记(2)--第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有点像QQ的登录界面,但是很多地方还是很难看,这一篇咱们来将这个界面做成一个标准的商业界面,并 ...