在WPF中传递参数给StartupUri

6

我有一个简单的WPF应用程序,其中包含通常的静态Main()(应用程序入口点)。Main将在显示UI之前执行一些初始化工作。然后它将创建并运行启动窗口。但是,我需要做的是从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是我想在启动窗口中访问的自定义对象。我该怎么做呢?
谢谢!
1个回答

4
将类型为MyObject的参数添加到您的MainWindow构造函数中(或者如果您更喜欢,则添加到属性中),然后手动创建窗口。只需使用重载Run,该重载接受Window参数,而不是使用启动URI将此窗口显示为主窗口即可。
Run(new MainWindow(obj));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接