WPF跨页面传递数据

WPF跨页面传递数据

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Visual Studio/ 跨页面传递数据

作者:戴伟雄

撰写时间:2020年8月28日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

    刚开始的时候做项目的时候还没了解到这个跨页面传递数据,那时在做一个关闭窗口把数据传递到另一个用户控件上时用了很久的时间,开始我是一直在用实例化另一个用户控件在把数据用参数的形式传递过去,这个方式我觉得是可行的,但就是有一个问题。

WPF跨页面传递数据

 

 

就是上面我需要在点击确定按钮时关闭这个小窗口同时把勾选的数据传递到后面的用户控件上,这个小窗口就是在这个用户控件上打开的小窗口。如果用实例化用户控件传参有一个问题是就是好像我关闭窗口时它跳到用户控件的时候都是执行了两次就是跳了两次,第一次数据是能传递过去的,第二次就没数据了,但是它就是会跳两次。然后我就在研究这里去了,但还是没有搞出来也没明白为啥它会跳两次。

   

如果是从用户控件打开一个窗口,也用参数的形式传递数据就是没问题的,我反过来就不行,也不知道是不是因为我是已经打开了用户控件,在这个用户控件上弹出一个窗口,然后关闭此窗口的时候我再实例化该用户控件把数据用参数传递过来,我就是想重新刷新一下用户控件,不知道是不是因为我是已经打开了用户控件的原因。

下面图我获取到数据后用实例化传参来传递数据,就是下面图我圈出来的实例化传参,就是会出现跳转两次的问题就是会出现跳转两次的问题

WPF跨页面传递数据

 

    这就是用这种方法最后的问题,我是想解决来的,研究了很久但还是没找到是为啥,那时候刚开始就记得这种传递数据的方法,研究了发现不行之后才去想另外的方法,发现在登录页面用到了一种很简单的跨页面传递数据

 

    直接在小窗口把获取到的数据放到这样的一个全局变量里面。这种全局变量就是可以在其它页面也能直接获取到的数据。

 

WPF跨页面传递数据

 

然后就是在你需要接受的页面直接 窗口名称 点 你放入数据的全局变量名称就可以了,就可以直接获取到其它页面的数据了。 这就是WPF获取全局变量的方法,感觉WPF获取数据还是比较方便的不管获取页面数据还是跨页面数据都比较方便。

 

WPF跨页面传递数据