J'essaie de changer la couleur du texte d'une étiquette iOS en utilisant un convertisseur de valeur avec MvvmCross. Voici un peu de code (ce qui est dans le projet de base):Xamarin MvvmCross iOS Bool à Color ValueConverter ne change pas Couleur du texte de l'étiquette
public class BoolToColorValueConverter
: MvxValueConverter<bool, object>
{
protected override object Convert(bool value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
MvxColor mvxColor = null;
if(value)
mvxColor = new MvxColor(255, 0, 0);
else
mvxColor = new MvxColor(0, 0, 0);
var nativeColorConv = Mvx.Resolve<IMvxNativeColor>();
return nativeColorConv.ToNative(mvxColor);
}
}
Et puis, sur ma fixation:
this.CreateBinding(LabelName).For(s => s.TextColor).To((MyViewModel vm) => vm.BooleanPropertyThatChangesAtSomePoint).WithConversion("BoolToColor").Apply();
Mais pour une raison quelconque lorsque les changements de propriété booléennes de vrai à faux , Je vois d'autres champs liés à cette propriété changer correctement, mais pas la couleur du texte de l'étiquette.
J'ai vu des vidéos @slodge, des tutoriels, des exemples de git téléchargés mais je n'arrive toujours pas à le faire fonctionner. Je pense que cela a à voir avec le convertisseur de ne pas retourner la valeur correcte puisque j'ai mis des points de rupture et le convertisseur a été déclenché. Des idées?
Merci Luc et merci pour les modifications. J'ai la prise MvxColors installée. Je n'obtiens pas tout à fait l'approche LinkerPleaseInclude. Je ne peux pas trouver cette classe sur mon projet, donc je suppose qu'il doit être ajouté manuellement. J'ai suivi votre approche en utilisant le MvxColorValueConverter mais j'obtiens une erreur lorsque l'application démarre. Je vais suivre vos suggestions et vous dire comment ça se passe. – Ph0b0x
En fait, en utilisant l'approche MvxColor a fait l'affaire. Il me manquait le plugin Mvx Color sur le projet IOS. Je l'ai eu dans le projet Core mais pas dans le projet IOS. Merci beaucoup Luke. – Ph0b0x
La règle générale lors de l'utilisation de plugins Mvx est de s'assurer que vous ajoutez le plugin aux projets Core et Platform. Les plugins ont généralement une interface portable et des implémentations spécifiques à la plate-forme, donc l'ajout des deux garantit que cela fonctionne correctement. – Kiliman