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

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

Page页间的跳转

     private void Button_Click(object sender, RoutedEventArgs e)
        {           
            Page2 p = new Page2();
            this.NavigationService.Navigate(p, DateTime.Now);
        }
1
2
3
4
5
<br>//xaml 页面跳转实例<br>      <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中就不会有此异常,但是页面刚跳转无效,返回就有,还是不行。

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

posted @   流年灬似氺  阅读(955)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示