ПРИЗМА RegionManager не добавляет регионы оболочки - PullRequest
0 голосов
/ 18 мая 2011

У меня есть основное приложение WPF и другие модули, и я использую PRISM для размещения представления модулей в разных регионах, определенных в моей командной консоли.Это прекрасно работает для меня.Теперь у меня есть требование установить главное приложение как библиотеку классов и вызвать его из другого оконного приложения.Это новое приложение Window имеет функцию Main со следующим кодом.

[System.STAThreadAttribute()]
    public static void Main()
    {
        Application app = new Application();
        IStartupUI start = new StartupUI();
        start.StartUserInterface();                      
        app.Run();
    }

start.StartUserInterface в основном вызывает функцию в DLL, которая имеет следующий код

     ABCBootStrapper bootstrapper = new ABCBootStrapper ();
     bootstrapper.Run();

Тот же фрагменткод был ранее вызван в OnStartup, когда сам Dll был основным приложением.

Теперь с этим изменением Shell не показывает никакого представления.При отладке я обнаружил, что RegionManager не распознает регионы, определенные в командной консоли.В основном количество регионов, зарегистрированных в RegionManager, равно 0. Все регионы, определенные в оболочке, являются ContentControl.

1 Ответ

0 голосов
/ 19 мая 2011

Моя проблема, казалось, была решена с помощью следующих действий:

Я сделал класс, который содержит функцию Main, производную от System.Windows.Application и вместо непосредственного создания экземпляра Application я создал экземпляр класса и поместил код для запуска пользовательского интерфейса в обработчик событий OnStartup.

class Test : System.Windows.Application
{
    [System.STAThreadAttribute()]
    public static void Main()
    {
        Test app = new Test();
        app.Startup += new StartupEventHandler(app_Startup);
        app.Run();
    }

    static void app_Startup(object sender, StartupEventArgs e)
    {

        IStartupUI start = new StartupUI();
        start.StartUserInterface();


    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...