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

2021-07-03 04:06

阅读:572

标签: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 页面跳转实例
  

很简单吧。(网上有的说是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


评论


亲,登录后才可以留言!