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 ...
一周排行
  • 0: 传输网络 Time Limit: 3 Sec  Memory Limit: 512 MBSubmit: 43  Solved: 18[Submit][Status][Web Board] [Edit] Desc ...
  • 活动目录 域控制器端口.域成员与域控之间通讯需要开放什么端口,除了LDAP389.139.445.DNS21,还有其他吗? 回答:根据您的描述,我对这个问题的理解是:DC和域成员之间通信所需要打开的端口.以下是需要打 ...
  • 本报理财数据分析员 刘振盛 上海报道最近有三款互联网金融理财产品人气爆棚:一是阿里巴巴的余额宝:二是百度的百发理财:三是微信将联合财付通,在下月推出的理财平台,产品的类型与前两者相同.余额宝名声不必多言,规模已破1亿 ...
  • 问:经常听别人说起虚拟内存,请问什么是虚拟内存?为什么我的电脑在使用过一段时间后,总是提示虚拟内存太低,是不是只有重新安装操作系统才能解决问题? 答:Windows操作系统用虚拟内存来动态管理运行时的交换文件.为了提 ...
  • 回顾之前的篇幅,C语言的主体部分基本已经介绍完了.之所以没有介绍C++的相关特性是因为在之前的文章中C和C++在这些方面都有共性,所以在面向对象之前.我们先把这些共性给介绍完.也就是说在介绍面向对象之前,所有的文章都 ...
  • 易网科技讯 6月25日消息,由于令人失望的零售业预期,加上市场对政府金融政策改革的担心,美国股市三大股指周四跌幅均超过1%.截止周四收盘,道琼斯工业平均指数下跌145.64点,报收于10,152.80点,跌幅1.4% ...
  • CSS里一直有一个让我们头疼的问题,就是创建布局很麻烦.当然,有很多方式,有很多技术都可以创建各种布局,但我们总觉得CSS里应该提供一些新属性,让我们能更好的管理布局 幸运的是,CSS3里提供了一批新的创建列式布局的 ...
  • 题目链接:点击打开链接 题意: 给定一个n*n的01矩阵 我们跑一下样例== 4 0111 0000 0100 0110   0123 \|____ 0|0111 1|0000 2|0100 3|0110 用0-n- ...
  • 今天小编给大家带来的是关于天涯明月刀的各职业属性收益表,小伙伴们一起来看一看吧. 今天小编给大家带来的是关于天涯明月刀的各职业属性收益表,小伙伴们一起来看一看吧. 主要是根据各职业属性加成修改的,不过还是有些错误.有 ...
  • This note is for chapters from 15 to 19, around the topics of 3 advanced algorithm analysis/design strategie ...