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 ...
一周排行
  • 3种边缘检测算子灰度或结构等信息的突变位置是图像的边缘,图像的边缘有幅度和方向属性,沿边缘方向像素变化缓慢,垂直边缘方向像素变化剧烈.因此,边缘上的变化能通过梯度计算出来.一阶导数的梯度算子对于二维的图像,梯度定义为 ...
  • 美国网站被攻击前黑客大爆内幕 2000年2月10日,美国广播公司针对最近一系列的黑客攻击网站事件,在网上采访了一名曾在参议院就网络安全问题作证的前黑客.此人的网名叫"威尔德·邦德"(以下简称W), ...
  • 最近为做展示,改写了一个遗传算法求TSP的Java界面版,思路代码和 http://blog.csdn.net/wangqiuyun/article/details/12838903 这篇文章思路是一样的,追加了Ja ...
  • 国内在线旅游公司艺龙旅行网(Nasdaq:LONG)昨日发布了未经审计的2009年二季度财报(截至6月30日).财报显示,艺龙第二季度总净营收为8190万元(人民币,下同),净利润为950万元.值得一提的是,第二季度 ...
  • 22.An index called ORD_CUSTNAME_IX has been created on the CUSTNAME column in the ORDERS table using the fol ...
  • 转 http://blog.chinaunix.net/uid-7374279-id-2057574.html 写在前面:今天客户来访(日本人),问我DB2和Oracle区别.因为不是DBA(勉强的理由),我还真没有 ...
  • Hub Connection plan Time Limit:1MS Memory Limit:65536KB Total Submit:743 Accepted:180 Description Partychen ...
  • 类与结构体 Swift中,并不要求把自定义类或结构的接口和实现写在不同的文件中.你在一个文件中定义类或结构体,那么这个类或结构体的外部接口就自动可以在其他代码中使用了. 类和结构有很多相似和区别,相同点有: > ...
  • First try, build gimp-print on ubuntu. 1. Install all dependencies. sudo apt-get install libcups2-dev sudo a ...
  •            这个问题是我敲机房的时候遇到的第二个问题了,当时在网上查了一下,说要借助一个API函数,说一下方法:     1.使用API函数:SetParent,在模块中声明这个函数,声明代码:       ...