Les couleurs peuvent être liés pour afficher les propriétés en utilisant assez facilement MvxColorConverters (en utilisant le plug-in Color)
Par exemple, en supposant avoir un score qui va de 1 à 10, vous pouvez colorer une vue de texte en fonction de la valeur :
public class ScoreToColorConverter : MvxBaseColorConverter
{
private static readonly MvxColor RedColor = new MvxColor(0xff, 0x00, 0x00);
private static readonly MvxColor GreenColor = new MvxColor(0x00, 0xff, 0x00);
protected override MvxColor Convert(object value, object parameter, CultureInfo culture)
{
var intValue = (int)value;
return (intValue > 5) ? RedColor : GreenColor;
}
}
Ce convertisseur peut ensuite être utilisé dans une vue comme:
<TextView
style="?OurTextViewBodyStyle"
android:textColor="@color/red"
local:MvxBind="{'Text':{'Path':'Score'},'TextColor':{'Path':'Status','Converter':'ScoreToColor'}}" />
Pour définir la couleur d'arrière-plan d'une vue, vous aurez probablement nee d pour écrire une petite liaison personnalisée - qui accède à la méthode SetBackgroundColor() - car la propriété Background elle-même est en lecture seule.
C'est possible, oui. Vous aurez besoin de faire une liaison personnalisée pour cela. Si vous avez l'intention d'utiliser la couleur elle-même dans le ViewModel, vous pouvez trouver le plugin Color utile - désolé, ce n'est qu'un commentaire - un peu occupé! – Stuart