2009-10-30 1 views
0

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

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(); 
} 

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

Thanks & С уважением, Vishal.

+0

Код, который вы опубликовали, не имеет ничего общего с щелчком мышью на просмотрах сотрудников или деталей. Я не думаю, что ваша проблема имеет какое-либо отношение к тому, чтобы заставить Shell управлять пользователями. Измените свой вопрос в области вашего приложения, с которым вы действительно сталкиваетесь. –

+0

Я использовал код из quickstarts, доступный в codeplex: «Quickstarts \ UI Composition \ ViewDiscovery». Просто изменил окно Shell на usercontrol и попытался разместить его в другом приложении WPF. вот эта ссылка для скачивания: http://compositewpf.codeplex.com/ – Vishal

+0

Возможно, вы сможете публиковать более подробную информацию о своем коде. Этот код выглядит отлично. –

ответ

0

Вы можете попробовать переопределить метод 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% -ного запуска не кажется мне правильным.

+0

Здравствуйте, Чтобы воспроизвести проблему, измените quickstart proj «UIComposition.Desktop.csproj» в качестве пользовательского элемента управления с оболочкой как usercontrol и размещайте ее другим приложением WPF/winform. Идея здесь в том, чтобы иметь возможность размещать оболочку в приложении WPF/WinForm. Thanks & Regards, Vishal. – Vishal

 Смежные вопросы

  • Нет связанных вопросов^_^