情况是这样的,我在WPF项目中要实现把模糊查询的的结果打印到报表中,这样我在输入关键字时点击查询,会先查询一遍,等我点击打印报表时后端就必须要获得这个关键字,根据关键字模糊查询。我之前想直接把模糊查询的结果传到报表打印的后端,未实现。
下面是具体内容:
- 这个主窗口是Main,这个子窗口是Print这个,我的思路是:先在主窗口声明一个全局变量tempName,然后把主窗口输入的关键字赋值给它,这个就是我在主窗口获取的输入的名字关键字。
为什么是全局变量??我在模糊查询时和这个根据模糊查询打印报表时都要用到这个变量。
前端的输入框
- 然后,在子窗口里声明一个全局变量tempName2(并给它get和set方法)在报表打印方法里,创建这个子窗口对象,把这个获取的名字的关键字tempName给子窗口的tempName2,这样我在子窗口就可以获取这个关键字了。
注意:这边的子窗口的我是给的窗口打开事件,当子窗口打开时,就会自动加载函数。
注意:这里的子窗口的全局变量是不是需要get和set方法???
我不给也是可以实现功能的。
展示效果:
疑问:以上这种方法是我在主窗口里新建的子窗口对象,然后把关键字赋值给子窗口的全局变量,是可以实现效果的。
疑问:
但是相反的我在子窗口新建一个主窗口对象,然后在子窗口的后端将主窗口的变量赋值给子窗口的变量,就不能实现功能。在新建主窗口对象时,这个变量取不到????
下面这是子窗口的后端:
前端可以取到值:
但是结果很遗憾,我在后端取不到这个输入的关键字:
我不明白这是什么原因???
询问贺工得知,没次new的时候这个数据都是会变的,相当于是一个新的对象,第一种我是在新建子窗口后把值给子窗口的。而第二种方法是我在打开子窗口后,才新建的主窗口的对象,这样的话这个值会被刷新掉的。
关于get和set方法问题: