2009-10-30 5 views
0

Je suis en train de faire Shell comme UserControl dans WPF application composite. J'ai commencé en modifiant l'application Quickstart: "Quickstarts \ UI Composition \ ViewDiscovery". J'ai fait "UIComposition.Desktop.csproj" une bibliothèque de classe UserControl avec Shell.xaml en tant que UserControl. Créé un autre WPFApplication pour héberger l'environnement Shell. Ajouté le code suivant dans App.xaml.cs:Prism V2: Hébergement Shell dans WPF/WinForm application

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

La forme apparaît avec la coque, mais lorsque je clique sur l'employé, il ne montre pas les détails voir. S'il vous plaît aider !!! Si un organisme a essayé cela.

Merci & Cordialement, Vishal.

+0

Le code que vous avez posté semble avoir rien à voir avec des vues en cliquant sur les employés ou les détails. Je ne pense pas que votre problème ait quelque chose à voir avec le fait que le Shell devienne une télécommande. S'il vous plaît modifier votre question avec la zone de votre application que vous rencontrez des problèmes avec. –

+0

J'ai utilisé le code de quickstarts disponible dans codeplex: "Quickstarts \ UI Composition \ ViewDiscovery". Juste changé la fenêtre Shell à usercontrol et essayé de l'héberger dans une autre application WPF. est ici le lien pour télécharger le code: http://compositewpf.codeplex.com/ – Vishal

+0

Peut-être vous pouvez poster plus de votre code. Ce code a l'air bien. –

Répondre

0

Vous pouvez essayer redéfinissant la méthode CreateShell du UnityBootstrapper, plutôt que d'utiliser cette méthode OnStartup. Je ne suis pas à 100% que c'est votre problème, mais c'est quelque chose à essayer.

Votre méthode OnStartup serait alors:

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

Et voici la méthode CreateContainer:

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

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

    return shellContainer; 

} 

Ceci est juste un coup de feu dans l'obscurité ici. Je ne sais vraiment pas quel est le problème, mais la solution de la méthode de démarrage à 100% ne me semble pas juste.

+0

Salut, Pour reproduire le problème, modifiez le proj QuickStart « UIComposition.Desktop.csproj » comme proj de contrôle utilisateur avec shell comme usercontrol et héberger une autre application WPF/Winform. L'idée ici est de pouvoir héberger le shell dans l'application WPF/WinForm. Merci et salutations, Vishal. – Vishal

Questions connexes