Question

J'utilise Avalondock pour avoir un style d'accueil de type VS, et j'utilise PRISM pour injecter des vues dans mon application.
Fondamentalement, l'utilisateur aura un panneau sur le côté avec un bouton par vue chargé, et chaque fois qu'il appuie un, je souhaite créer un nouvel onglet sur le document de document de mon Avalondock et injecter la bonne vue.

Maintenant, j'avais l'impression que le prisme est bon pour ce genre de scénario, mais je peux le comprendre.

De plus, je suis tombé Adaptateurs de la région documentaire et dockable par Markus Raufer, l'ont ajouté à mon projet et enregistré les mappages du bootstrapper.
Cela me permet de compiler la solution (donc je suppose que je me rapproche).

Jusqu'à présent, je fais ceci:

Dans mon Shell J'ai une place avec:

<avadock:DocumentPane avadock:ResizingPanel.ResizeWidth="500" Background="Transparent"
                      prism:RegionManager.RegionName="{x:Static inf:RegionNames.MainTabControlRegion}">
</avadock:DocumentPane>

Dans mon code-bind, après bootstrap, etc., j'ai une place qui fait:

m_RegionManager.Regions[RegionNames.MainTabControlRegion].Add(oneOfMyUserControls);

L'exécution de cette ligne ne montre rien de plus à l'utilisateur, mais si je l'exécute deux fois, cela fera une erreur disant qu'une vue est déjà enregistrée (donc elle a ajouté quelque chose!).

De plus, lorsque je mets un contenu régulier, marquez-le avec prism:RegionManager.RegionName="{x:Static inf:RegionNames.MainTabControlRegion} Ensuite, ajoutez un UserControl de la même manière que je l'ajoute au document de document d'Avalondock, cela fonctionne. bizarre

Qu'est-ce que je fais mal?
Merci,

bab.

ÉDITER:
Si définissez le maintabControlregion comme celui-ci, la première vue est réellement ajoutée, maintenant j'en ajoute un autre (différent userControl), il ne le montre pas, mais l'inspecteur WPF dit qu'il est là.
De mon point de vue, il ajoute en effet UserControls à une région, mais il ne sait pas comment créer un nouvel onglet pour chaque UserControl que j'ajoute au documentPane.
Puisque je ne précise rien à ce sujet, il me manque probablement un morceau de code?

<avadock:DocumentPane avadock:ResizingPanel.ResizeWidth="500" Background="Transparent">
    <avadock:DocumentContent Title="" prism:RegionManager.RegionName="{x:Static inf:RegionNames.MainTabControlRegion}">

    </avadock:DocumentContent>
</avadock:DocumentPane>

Je veux qu'il crée un nouvel onglet chaque fois que j'ajoute un UserControl et l'inserte là-dedans.

Edit 2: Solution --> Ici

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top