2011-07-05 3 views
8

Comment appliquer un ValueConverter à une liaison Caliburn.Micro conventionnelle? ou avez-vous besoin d'utiliser la syntaxe {Binding}?Comment appliquer un ValueConverter à une liaison Caliburn.Micro conventionnelle?

Je sais que je pourrais faire

<TextBlock 
    Text="{Binding Foo, Converter=fooToBarConverter}" /> 

mais comment puis-je demander que le convertisseur personnalisé si j'utilise la convention de Caliburn.Micro sur la configuration, comme

<TextBlock 
    x:Name="Foo" /> 

Merci,

Répondre

5

Vous devez remplacer la fonction ConventionManager.ApplyValueConverter. Par défaut, il ne fait qu'athe bool => Conversion de visibilité. En outre, vous pouvez remplacer la fonction ApplyStringFormat pour la mise en forme de chaîne conventionnelle. Jetez un oeil dans le ConventionManager pour voir comment cela fonctionne.

+0

Cool - merci. J'avais vu le SetBinding appelé cela, mais n'avait pas rejoint les points en termes de besoin d'écrire le mien ... – kiwipom

+0

Donc, probablement je voudrais stocker la fonction boolToVis par défaut quelque part, créer mon propre ApplyValueConverter, puis restaurer celui par défaut après la fin de la liaison de la machine virtuelle à la vue. Est-ce une approche raisonnable? Je ne suis pas sûr que je voudrais laisser mon IVC très spécifique traîner par défaut, tbh ... – kiwipom

Questions connexes