2017-10-16 3 views
0

je tentais de créer un moteur de rendu personnalisé pour le contrôle Map:Pourquoi fonctionne renderer dérivé MapRenderer uniquement pour un contrôle dérivé de carte

[assembly: ExportRenderer(typeof(Map), typeof(MapRendererFix))] 

namespace MyApp 
{ 
    class MapRendererFix : MapRenderer 
    { 
    } 
} 

Mais le c-tor ne sera jamais appelé.

Si toutefois je crée une classe de contrôle dérivé MapFix, il fonctionne:

class MapFix: Map 
{ 
} 

[assembly: ExportRenderer(typeof(MapFix), typeof(MapRendererFix))] 

namespace MyApp 
{ 
    class MapRendererFix : MapRenderer 
    { 
    } 
} 

Il ne fait pas de sens pour moi pourquoi je dois créer un contrôle dérivé de Map afin d'avoir le moteur de rendu personnalisé utilisé . Si je crée un MyButtonRenderer, il est utilisé sans avoir à créer un MyButton.

Répondre

0

2 choses à vérifier/test:

-Renderer devraient être rendues publiques

-typeof (Carte) correctement l'instance de référence Xamarin Forms Carte

Peut-être que vous pourriez envoyer plus de code?

+0

Non, la classe de rendu personnalisée n'a pas besoin d'être publique. Essayez-le s'il vous plaît. –