Question

Est-il possible d'enregistrer un adaptateur régional dans un module?

J'ai un contenuControl dans mon ensemble shell.xaml sur la région "Mainregion" qui est actuellement rempli d'un module contenant le contrôle Avalondock. J'ai actuellement l'adaptateur de région Avalondock dans mon application Shell, mais je voudrais le placer dans le module et s'inscrire lui-même. Je veux garder ce programme flexible afin que si nous décidons d'utiliser autre chose qu'Avalondock, je peux facilement utiliser un autre module sans avoir à modifier mon assemblage de coquilles (en supprimant l'adaptateur de région Avalondock).

J'imagine que quelque chose comme ça est possible. Quelqu'un a-t-il déjà fait cela?

Dans Bootstrapper en ce moment est:

protected override RegionAdapterMappings ConfigureRegionAdapterMappings()
{
    RegionAdapterMappings mappings = base.ConfigureRegionAdapterMappings();
    var regionBehaviorFactory = Container.GetExportedValue<IRegionBehaviorFactory>();
    var regionManager = Container.GetExportedValue<IRegionManager>();
    mappings.RegisterMapping(typeof(Pane), new AvalonRegionAdapter(regionBehaviorFactory, regionManager));

    return mappings;
}

C'est ce que j'aimerais jouer dans le module au lieu du bootstrapper shell.

Était-ce utile?

La solution

La réponse est ici de Codeplex http://compositewpf.codeplex.com/discussions/250892

Le scénario que vous décrivez est possible. Bien que les adaptateurs de région personnalisés soient destinés à être enregistrés dans la méthode RegionAdaptermAppings dans la méthode ConfigureRegionAdaptermappings du bootstrapper, il est possible d'enregistrer un adaptateur région personnalisé à partir d'un module.

Vous pouvez, par exemple, obtenir une référence aux RegionAdaptermAppings dans votre classe de module en utilisant l'injection de constructeur et appeler la méthode de la carte de registre. Cela est possible car il existe une classe nommée MefregionAdaptermAppings, qui exporte le RegionAdaptermappings comme une exportation partagée. Notez que vous devez être conscient des problèmes de synchronisation qui peuvent survenir à cause de cela. Vous devez faire attention à enregistrer le mappage personnalisé avant d'essayer de créer une région qui utilise cet adaptateur.

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