Передача аргумента в StartupUri в WPF - PullRequest
5 голосов
/ 26 января 2012

У меня есть простое приложение WPF с обычной статической функцией 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 Ответ

3 голосов
/ 26 января 2012

Добавьте параметр типа MyObject в конструктор MainWindow (или свойство, если хотите), затем создайте окно вручную. Просто используйте перегрузку Run, которая принимает параметр Window, вместо использования URI запуска для отображения этого окна в качестве основного окна.

Run(new MainWindow(obj));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...