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 ...
一周排行
  • 这篇文章主要为大家介绍了Discuz论坛发帖技巧,需要的朋友可以参考下 今天把发帖技巧整理一下,把发各种文件的技巧一起贴出来,和各位讨论讨论一下.希望对大家有所帮助. 1. 发图片. 其实发表的文件总的来说归为两类, ...
  • 移动互联网的快速发展和智能移动终端的快速普及,师生用户对校园内无线覆盖的需求越来越强烈.校园无线网建设程度逐渐成为衡量高校信息化发展的一个重要指标,高校纷纷建设大规模无线校园网.由于无线网信号是在开放空间传输,Wi- ...
  • 一.选择器 单选按钮:$(this).find(".answer").find("input[name='answer_" + id + "']:checked&qu ...
  • 简单思路整理:   作者通过本地搭建环境,模拟wvs扫描,查看日志,从日志中分析 wvs的扫描特点,程序里面加以控制.  日志中wvs的扫描请求的特点是:   通过分析包的格式,前期的探测脚本http头带着的关键参数 ...
  •                                                                                                             ...
  •  第6章              用注解进行映射 映射可以有两种形式:单独的XML文件或者POJO源代码中嵌入的Java 5注解.在本章中,我们要讨论注解的使用方法:在下一章中,将讨论XML文件的使用方法 6.1  ...
  • 借鉴地址:http://www.cnblogs.com/kissazi2/archive/2013/02/27/2935307.html DECLARE @temp TABLE ( [C_ClientID] NVAR ...
  • http://ssd.zol.com.cn/306/3063756_all.html
  • 中新社上海六月五日电 (彭晓华 郁玫)五日上午,两款技术指标达到国际先进水平的国产光芯片,亮相"第五届光电子产业与知识产权国际论坛".据专家介绍,中国光通信应用领域的光芯片市场规模已突破100亿元 ...
  • 1.判断浏览器是否为IE         document.all ? 'IE' : 'others':在IE下document.all值为1,而其他浏览器下的值为0:         navigator.userA ...