在WPF中将参数传递给StartupUri

时间:2012-01-26 18:02:14

标签: c# wpf

我有一个简单的WPF应用程序,它具有通常的静态Main()(应用程序的入口点)。在显示UI之前,Main将执行一些初始化操作。然后它将创建并运行启动窗口。但是,我需要做的是将自定义对象从main传递到启动窗口,但我不知道该怎么做。

包含Main()的主类看起来像这样:

class App : Application
{
    [STAThread()]
    static void Main()
    {
        MyObject obj;
        // Some processing stuff here.

        new App(obj);
    }

    public App(MyObject obj)
    {
        StartupUri = new System.Uri("MainWindow.xaml", UriKind.Relative);
        Run();
    }
}

显然,MyObject是我想要在启动窗口中访问的自定义对象。我怎么能这样做?

TIA

1 个答案:

答案 0 :(得分:3)

MyObject类型的参数添加到MainWindow构造函数(或者您喜欢的属性),然后手动创建窗口。只需使用Run的重载,该重载采用Window参数,而不是使用启动URI将此窗口显示为主窗口。

Run(new MainWindow(obj));