2010-08-06 89 views
0

非常感谢您提前给予的帮助。作为变量传递窗口,wpf

在位于主()下面的代码: Application.Run(新frmBackground(frmExit)) 我试图发射窗口frmBackground接受一个窗口,在构造函数的参数,所有内容加载后(背景图像),然后启动传递的窗口。但是,这不能编译,只有编译时,我使用的应用程序.run(新frmBackground(新frmExit())) 传递正确的窗口参数,但它本身创建一个frmExit实例,并启动窗口,即使当frmBackground启动窗口的代码被注释掉了。

再次感谢您。

回答

0

从我的理解,当你说Application.Run(新frmBackground(frmExit)),你没有传递一个frmExit的实例,但类型(类),并从我的理解,你的方法是在这里你保留一些你知道你可能需要的资源的参考,像这种形式的参考

frmExit exitForm = new frmExit(); 
Application.Run(new frmBackground(exitForm)); 

还是有一些“包”类:期待一个实例...你可能想要做这样的事情(frmExit),然后更改frmBackground的构造函数,然后将参数变量的调用替换为“bag”类中的值..类似的东西..

如果这不是你想达到什么样的,我建议你给你的代码在这里

+0

原Application.Run(新frmBackground(新frmExit))并通过frmExit – 2010-08-06 23:21:29

+0

的实例,谢谢您的答复。我已经尝试过这种方法,结果完全一样。我不想传递窗口的实例(它导致它显示),只是将窗口作为稍后实例化的类型。我希望我不太困惑。 – Daniel 2010-08-06 23:23:57

+0

然后你在frmBackground的构造函数上使用了错误的签名......并且如果你只是想稍后实例化,为什么不创建一个属性或者方法来传递一个类型(比如说frmExit),为此你必须执行这个类型必须继承frmExit的类型),然后应用一个工厂来创建该类型的实例? – MilkyWayJoe 2010-08-06 23:29:58