Ах, нашел ваш новый вопрос (я вижу, вы поняли, почему он не работал раньше)
Я предлагаю использовать преобразователь значений .
То, что это будет делать, это преобразовать значение int Счастья в цвет, и затем вы можете связать свойство Label
*1007* с Happiness
, используя IntToColorConverter
, например ::
public class IntToColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double percent = (double)((int)value) / 100;
double resultRed = Color.Red.R + percent * (Color.Green.R - Color.Red.R);
double resultGreen = Color.Red.G + percent * (Color.Green.G - Color.Red.G);
double resultBlue = Color.Red.B + percent * (Color.Green.B - Color.Red.B);
return new Color(resultRed, resultGreen, resultBlue);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Затем, чтобы использовать его в XAML:
<ContentPage.Resources>
<ResourceDictionary>
<local:IntToColorConverter x:Key="intToColor" />
</ResourceDictionary>
</ContentPage.Resources>
<Label ...
TextColor="{Binding Happiness, Converter={StaticResource intToColor}}">