码迷,mamicode.com
首页 > Windows程序 > 详细

Wpf Page间跳转传参数 And Window To Page

时间:2018-11-03 14:17:01      阅读:1736      评论:0      收藏:0      [点我收藏+]

标签:aml   enc   htm   col   16px   传参   str   dev   eve   

  这段时间用到Wpf,页面间的跳转网上有不少的示例,但是有些已经不能用了,尤其是页面间的传参问题更是一大堆,但正确的解决方案却没有几个,或者说写的不清楚,让人走了很多弯路,查看官方文档后发现了正确的姿势,现记录如下

Page页间的跳转

     private void Button_Click(object sender, RoutedEventArgs e)
        {           
            Page2 p = new Page2();
            this.NavigationService.Navigate(p, DateTime.Now);
        }
    
//xaml 页面跳转实例
   <Button Height="30" VerticalAlignment="Top"> <Hyperlink NavigateUri="Page2.xaml" Foreground="Red"> 跳转 </Hyperlink> </Button>

很简单吧。(网上有的说是Uri("") 做参数,发现不好使 )

Window To Page 跳转

//需要借助 NavigationWindow 实现 
NavigationWindow nav = new NavigationWindow();
nav.Source = new Uri("Page1.xaml", UriKind.Relative);
nav.Show();

最后 说下page间传参数的问题

Page1 to Page2

Page1.cs
private
void Button_Click(object sender, RoutedEventArgs e) { Page2 p = new Page2(); this.NavigationService.Navigate(p, DateTime.Now);
//注意LoadCompleted 事件的位置在 Page1.cs 中
this.NavigationService.LoadCompleted += p.NavigationService_LoadCompleted; }
 Page2.cs
public void NavigationService_LoadCompleted(object sender, NavigationEventArgs e) { string msg = string.Format("{0} loaded.", e.ExtraData); MessageBox.Show(msg); }

有人说是 NavigationService.LoadCompleted 放在page2中,但会有 NavigationService 的NullReferenceExcepteion。

放在Load中就不会有此异常,但是页面刚跳转无效,返回就有,还是不行。

查找文档后 整理如上避免太多人的入坑,内容纯手写,仅此笔记而已,不喜勿喷。。。 

Wpf Page间跳转传参数 And Window To Page

标签:aml   enc   htm   col   16px   传参   str   dev   eve   

原文地址:https://www.cnblogs.com/lic0914/p/9900314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!