Prism V2: хостинг-оболочка в приложении WPF / WinForm - PullRequest
0 голосов
/ 30 октября 2009

Я пытаюсь сделать Shell как UserControl в приложении WPF Composite. Я начал с изменения приложения Quickstart: «Quickstarts \ UI Composition \ ViewDiscovery». Я сделал «UIComposition.Desktop.csproj» библиотекой классов UserControl с Shell.xaml в качестве UserControl. Создано другое приложение WPFA для размещения оболочки. Добавлен следующий код в App.xaml.cs:

protected override void OnStartup(StartupEventArgs e)
{
     base.OnStartup(e);
     Bootstrapper bootStrapper = new Bootstrapper();
     bootStrapper.Run();

     // Get ShellContainer from IOC 
     IUnityContainer container = bootStrapper.Container;
     var shellElement = container.Resolve<Shell>();
     ShellContainer win = new ShellContainer();

     // Add the ShellContainer UserControl to the main window 
     win.mygrid.Children.Add(shellElement);
     win.Show();
}

Форма отображается с оболочкой, но когда я нажимаю на сотрудника, она не отображает подробное представление. Пожалуйста помоги!!! Если кто-то пытался это сделать.

Спасибо и С уважением, Вишал.

1 Ответ

0 голосов
/ 31 октября 2009

Вы можете попробовать переопределить метод CreateShell в UnityBootstrapper, а не использовать этот метод OnStartup. Я не на 100% уверен, что это ваша проблема, но стоит попробовать.

Ваш метод OnStartup будет:

protected override void OnStartup(StartupEventArgs e)
{
     base.OnStartup(e);
     Bootstrapper bootStrapper = new Bootstrapper();
     bootStrapper.Run();
}

А вот и метод CreateContainer:

protected override DependencyObject CreateShell()
{
     var shellElement = Container.Resolve<Shell>();
     var shellContainer = new ShellContainer();

     shellContainer.mygrid.Children.Add(shellElement);
     shellContainer.Show();

     return shellContainer;

}

Это просто выстрел в темноте. Я действительно не знаю, в чем проблема, но 100% -ное решение для запуска не кажется мне правильным.

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